鉴于现在大部分 iOS 常用库都还是用 OC 实现的,我们常常需要用到一个叫做 Bridging-Header.h 的东西来在 Swift 项目中使用 OC 实现的框架,当然前提是在这个项目里我们不能或者不想使用 Cocoapods 或 Carthage。
在 iOS 8 之后,我们可以使用 framework 了,相比于麻烦地操作一遍一下步骤:
- 创建一个 Bridging-Header.h 文件
- 在 target(还要注意不能是 project)的 Build Settings 找到 Objective-C Bridging Header 项
- 然后在里面填上路径,还要注意一下 绝对/相对 路径
我更愿意直接把 xxx.framework 放到项目里,然后使用的时候在顶部写上 <code>import XXX</code>。如果这个框架是 AFNetworking 的话,我们可以在它的 releases 页面下载到 AFNetworking.framework.zip。

但更多像 SVProgressHUD 这样的框架,你只能找到源码,并没有现成的 framework 文件给你用。

利用 Carthage 打包 framework

好在它支持了 Carthage。创建了一个文件夹,里面初始只有一个 cartfile

cartfile 里面随便写了俩常用框架

在终端执行 <code>carthage update</code> 之后
现在我们可以直接把打包好的 framework 文件复制到项目里使用了,以后想用什么框架都可以在这个 cartfile 里面添加,在这个文件夹里取用 framework。
说白了就是一个利用 Carthage 找 framework 文件的方法。
需要注意的是,如果你想通过自行编译源码,然后在 Products 文件夹里取用 framework,可能这个文件的架构会有问题。