iOS框架没有"链接"到应用程序,为什么需要呢?

时间:2016-05-23 06:35:51

标签: ios xcode frameworks

我在我的应用中尝试使用HealthKit并且我注意到我可以import HealthKit使用它的功能,在没有HealthKit.framework的情况下编译和运行应用程序链接到我的应用程序"链接框架和库" (在一般目标设置中)。如果是这种情况,为什么首先需要链接到系统框架?​​

2 个答案:

答案 0 :(得分:3)

Lion的答案是正确的,但不完整。

Xcode推出了名为模块的内容。模块是在Xcode 5.0中引入的,是包含/导入文件的另一种方式。

除了一些编译优化之外,它还包含一些名为自动链接的内容。

  

当源文件包含来自支持的框架的标头时   模块,编译器在目标文件中生成额外信息   在该框架中自动链接

Source

Swift默认使用模块。当您使用@import而不是#import时,Objective-C会使用模块。

简而言之,Xcode总是使用自动链接,除非您使用#import

You can read here for more details.

答案 1 :(得分:0)

不需要最新的sdk或说最新的xcode。如果您可以导入框架并且可以使用它而不在Linked Frameworks and Libraries中添加它,那么就不需要将该框架添加到Linked Frameworks and Libraries,因为默认情况下它已经与您的项目链接。