Swift项目中链接的框架和库

我的iOS应用程序使用AVPlayer播放声音。 要做到这一点,我不得不在类的顶部键入以下内容:

 import AVFoundation 

我来自Objective-C的背景,所以我去了Xcode项目的常规选项卡,并通过单击链接的框架和库下的加号button添加AVFoundation 。 黄色的工具箱出现在我的项目。 我必须这样做吗?

我试图从项目中删除它 – 从侧边栏和Xcode偏好设置,我的应用程序仍然工作,声音在播放。 那么, import处理所有的东西吗?

是的,在Swift中import基本上和Objective-C中的@import (而不是#import <…> )是一样的,导入模块

这个新特性(模块)是最近(1 – 2年前)推出的, 它为您导入了框架,而不需要明确地将您的应用程序链接到它 :当使用模块( @import在ObjC中,在Swift中import )编译器将会看到模块名称,并为你隐式地和自动地将你的应用与框架链接起来。

所以这是我们当天没有回来的一项新function,当时#import是唯一的select,我们必须自己手动添加系统框架。

(请注意,模块只有在iOS8出现之前才可用于Apple框架,但是现在您可以在构buildiOS8时构build自己的dynamic框架,只要它们具有module.map,也可用于第三方框架)


如果您有兴趣,可以在Clang文档中阅读更多内容 。 各种博客文章也讨论了这个问题(例如Google的第一个结果就是这个博客文章 )