swift如何知道要导入哪些文件?

时间:2015-11-20 02:28:07

标签: ios swift import

我从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文件吗?我不想只是手动这一点,然后当一些东西没有像魔术那样导入时会惊讶不已!

2 个答案:

答案 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文件。