坦率地说,我很难理解Swift中的进口是如何运作的。当我开设一个新课时,它将从以下开始:
import foundation
作为替代方案,我们可以使用import Swift
或import UIKit
,具体取决于我们需要的库。 但是我注意到如果我只是删除导入我的项目运行没有任何问题(即使我使用这些库中的类)。 这是我需要帮助的地方:我想知道是否因为我有内部框架,我导入Swift / UIKit / Foundation从而获得导入。因此,进口就像瘟疫一样......如果他们触及一个新类,那么所有类触及的东西都可以访问该导入。
答案 0 :(得分:2)
是的,当您使用的类导入该框架时,它也会在您的类中导入。这是为了使事情更加清晰,例如当课程Foo
的方法abc
具有需要UIKit
的参数时,Foundation
中存在该参数。因此,当您使用课程Foo
时,会自动导入UIKit
。
作为旁注,导入UIKit
将导入Foundation
,其中还会导入Darwin
。所以它真的像瘟疫。如果第三方库(例如Charts
)导入UIKit
,则会导入Foundation
和Darwin
。
答案 1 :(得分:0)
所以我们发现了这个问题。有人在每个框架中添加了头文件:
#import <UIKit/UIKit.h>
删除此行会减少一切。
现在关于进口如何运作。如果库A中的A类导入库B,即使库B导入UIKit,A类也无法访问UIKit。这就是我期望它如何运作以及它如何运作的方式。