进口如何迅速发挥作用?

时间:2017-11-30 08:32:49

标签: ios swift

坦率地说,我很难理解Swift中的进口是如何运作的。当我开设一个新课时,它将从以下开始:

import foundation

作为替代方案,我们可以使用import Swiftimport UIKit,具体取决于我们需要的库。 但是我注意到如果我只是删除导入我的项目运行没有任何问题(即使我使用这些库中的类)。 这是我需要帮助的地方:我想知道是否因为我有内部框架,我导入Swift / UIKit / Foundation从而获得导入。因此,进口就像瘟疫一样......如果他们触及一个新类,那么所有类触及的东西都可以访问该导入。

2 个答案:

答案 0 :(得分:2)

是的,当您使用的类导入该框架时,它也会在您的类中导入。这是为了使事情更加清晰,例如当课程Foo的方法abc具有需要UIKit的参数时,Foundation中存在该参数。因此,当您使用课程Foo时,会自动导入UIKit

作为旁注,导入UIKit将导入Foundation,其中还会导入Darwin。所以它真的像瘟疫。如果第三方库(例如Charts)导入UIKit,则会导入FoundationDarwin

答案 1 :(得分:0)

所以我们发现了这个问题。有人在每个框架中添加了头文件:

#import <UIKit/UIKit.h>

删除此行会减少一切。

现在关于进口如何运作。如果库A中的A类导入库B,即使库B导入UIKit,A类也无法访问UIKit。这就是我期望它如何运作以及它如何运作的方式。