繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM