[英]How does swift know which files to import?
我正从Objective-C领域涉足Swift,并且对Swift的导入功能感到好奇。 我发现不需要导入自己的类,例如:
Objective-C的:
#import <UIKit/UIKit.h>
#import "CustomObject.h"
CustomObject* newObject = ...
迅速:
import UIKit
//no need to import CustomObject
var newObject: CustomObject...
我的问题是,如何迅速做到这一点? 它在哪里寻找自动导入的.swift文件? 仅仅是添加到项目目标中的任何.swift文件吗? 我不想随便挥动一下,然后在某些东西不像魔术一样进口时就被惊喜吓住了!
我不确定我是否会优雅地解释这一点,但是在这里...
假设您要创建一个名为Battlefront
的应用程序。 当您向应用程序添加文件/类时,实际上它们已添加到应用程序的模块,即Battlefront
模块中。 假设您创建了一个名为Hero
的类,那么您的类不仅是Hero
,它是Battlefront.Hero
但是由于您是在Battlefront
模块的上下文中使用它的,因此在使用您的类时无需指定模块名称类。
Swift中的导入主要与模块一起使用。 我想您可以在Swift中导入单个类,但是我没有尝试过,因此我无法对此发表评论。 假设您要导入CoreData
,那么您要使用import CoreData
导入整个模块。
默认情况下,类使用internal
访问控制。 如果要在Battlefront
公开类以供其他模块使用,则必须将类指定为public:
// Default is internal, not available outside Battlefront
class Hero {
}
// Public class, is available outside Battlefront
public class Weapon {
}
您可以在此处阅读有关访问控制的更多信息 。 我想您可以简化与Target
等于Module
的关系,但这只是捷径。 不过,这可能是理解该概念的开始。
简短的答案:是的,Xcode可访问项目中的所有.swift文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.