我从Objective-C的土地上快速潜入,我对快速的导入功能感到好奇。我发现没有必要导入我自己的类,如下所示:
Objective-C:
#import <UIKit/UIKit.h>
#import "CustomObject.h"
CustomObject* newObject = ...
夫特:
import UIKit
//no need to import CustomObject
var newObject: CustomObject...
我的问题是,斯威夫特如何做到这一点?它在哪里寻找.swift文件自动导入?它只是添加到项目目标中的任何.swift文件吗?我不想只是手动这一点,然后当一些东西没有像魔术那样导入时会惊讶不已!
答案 0 :(得分:2)
我不确定我会以优雅的方式解释这一点,但在这里它会......
假设您正在创建一个名为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 {
}
您可以阅读有关访问控制here的更多信息。
我想你可以简化与Target
等于Module
的关系,但这会占用一条捷径。可能是了解这个概念的开始。
答案 1 :(得分:0)
简短回答:是的,Xcode访问项目中的所有.swift文件。