Swift - 总是需要链接到所需的框架吗?

Swift - Is linking to required framework always necessary?

很多关于框架(AVFoundation、AudioToolBox、Social、MPMediaPlayer、iAd 等)的教程都开始说必须 link 各自的框架(目标设置 -> 构建阶段 ->link 带库的二进制文件-> 添加框架)。

大多数时候,我发现单独的导入语句就足够了,而且我的应用程序在真实设备和模拟器上都能完美运行。例如,如果我想使用 MPMusicPlayer 播放音频,"import MediaPlayer" 非常适合我。

我的问题是,只要该应用程序在模拟器和设备上都能完美运行,省略此类 link 框架(并改用​​ import 语句)是否安全?

如果您 import 框架,则没有必要 link 框架。


很久以前,在 Swift 出现并且我们都使用 Objective-C 之前,我们必须 link 我们的应用程序的框架,并将这一行放在所有框架的顶部我们需要此框架的文件:

#import <SomeFramework/SomeFramework.h>

但随后出现了 @import 声明。现在我们只需要写:

@import SomeFramework;

编译器会自动link框架并将其导入到文件中。但是我们仍然可以手动 link 库以实现兼容性(并且因为某些库无法 @imported。)

Swift 的 import 语句功能与 Objective-C 的 @import 相同,因此您不需要 link 框架,因为它会自动 linked.