Swift项目中的链接框架和库

Bor*_* Y. 9 ios swift

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

import AVFoundation
Run Code Online (Sandbox Code Playgroud)

我来自Objective-C背景,所以我去了Xcode项目的General选项卡,AVFoundation并通过单击Linked框架和库下的加号按钮添加它.黄色工具箱出现在我的项目中.我必须这样做吗?

我试图将它从项目中移除 - 无论是从侧边栏还是在Xcode首选项中,我的应用程序仍然有效并且声音正在播放.那么import为你处理一切吗?

Ali*_*are 8

是的,import在Swift中基本上与@importObjective-C(相对于#import <…>)导入模块相同.

这个新功能(模块)最近被引入(1 - 2年前?)并且为您导入框架而无需将应用程序显式链接到它:当使用模块时(@import在ObjC中,import在Swift中),编译器将会看到模块名称,并隐式和自动地为您的应用程序与框架链接.

所以这是我们在当天没有的新功能,这#import是唯一的选择,我们必须自己手动添加系统框架.

(请注意,在iOS8到来之前,模块仅适用于Apple的框架.但是现在您可以在构建iOS8时构建自己的动态框架,它们也可用于第三方框架,只要它们具有a module.map)


如果您有兴趣,可以在Clang文档中阅读更多内容.各种博客文章也谈论这个主题(例如,首先谷歌的结果是这篇博文)