现在 Github 上绝大多数的库都是用 Objective-C 语言写的,当我们使用 Swift 进行开发的时候呢,无论是用 CocoaPods 还是手动把库集成到自己的项目中,一开始都是不能直接使用的。
需要用到 Bridging-Header.h 文件
比如在这个 Swift 项目中,我手动加入了 OLImage 这个用OC写成的库,并且添加了所有需要的 Framework,但是代码中输入“OLImage”却悲伤地发现 Xcode 没有自动给你补全代码——第三方库引入未成功。
解决方案:
在 YOUR PROJECT NAME-Bridging-Header.h 文件中,import 所有 OLImage那个库用到的头文件。至于有哪些文件,去库里面一个一个文件点开看就可以了。
可是 YOUR PROJECT NAME-Bridging-Header.h 是怎么来的呢 ?
当你在 Swift 工程中加入 OC 文件,Xcode 一般会自动检测到这一点,并且询问你是否需要添加这个文件,而如果 Xcode 没有给你这个提示,你可以手动触发它:
添加文件 选择 Header File然而仅仅是这样,不管你在 Header File 里面 import 多少内容,都没有用,因为你添加进来的这个 .h 文件并不会被编译。
这个时候,进入 YourTarget -> Build Settings -> Swift Compiler-Code Generation 这个设置项里面,把你的 .h 文件的【绝对路径】输入到 Objective-C Bridging Header 里面就可以了。
(如何最快获取绝对路径:直接把某个文件或文件夹,拖动到文本输入框,路径会自动显示出来)
网友评论
一般的项目结构是
xx - 项目目录
xx.proj - 项目文件
header.h - support files
abc.png - support files
所以在brigeing-header.h要这么写(在 support目录下,也就是项目目录下)
#import "rage/auto/AutoScrollLabel.h"
//rage是我的项目名,我还把所有第三方文件放到一个auto文件夹下
.h”这个头文件写在.h文件里面了。 应该写在.m文件中。