美文网首页Swift进阶之路Swiftios
【iOS开发】Swift、OC 混编用到的 Bridging-H

【iOS开发】Swift、OC 混编用到的 Bridging-H

作者: KyXu | 来源:发表于2015-08-06 18:30 被阅读12803次

    现在 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 里面就可以了。

    (如何最快获取绝对路径:直接把某个文件或文件夹,拖动到文本输入框,路径会自动显示出来)

    相关文章

      网友评论

      • 863c73f31933:楼上,在Bridging-Header.h中进行iOS编译版本判断,这个能实现嘛?
      • 巴图鲁:膜拜
      • 巴图鲁:膜拜
      • avi9111:搞了我一天终于搞好了引用
        一般的项目结构是
        xx - 项目目录
        xx.proj - 项目文件
        header.h - support files
        abc.png - support files
        所以在brigeing-header.h要这么写(在 support目录下,也就是项目目录下)
        #import "rage/auto/AutoScrollLabel.h"
        //rage是我的项目名,我还把所有第三方文件放到一个auto文件夹下
      • 雪之音:表示我自己搜索解决这个问题时搜到你的了,😄我添加Bridging文件的时候放到了下面的interface header name :cold_sweat:
      • Hollylord:还是不行!依然找不到!
        Hollylord:@KyXu 已经改正了,不是路径的原因,系统默认的路径都是对的。是由于我引用“xxx-Swift
        .h”这个头文件写在.h文件里面了。 应该写在.m文件中。
        KyXu:@CaptainBear 1.确定文件格式对 2.确定在正确的地方输入了正确的绝对路径?
      • 2ee6b01deaa1:我是使用CocoaPods管理第三方库,引入的过程和你文章说的一样,死活没有提示
        Double丶K:@KyXu大魔王 太扯了,这样没用,研究了2天终于跳坑了 :sob:
        KyXu:@曾经的兔子 手动添加,去Swift Compiler-Code Generation里面再手动写路径,bingo

      本文标题:【iOS开发】Swift、OC 混编用到的 Bridging-H

      本文链接:https://www.haomeiwen.com/subject/ltkbqttx.html