美文网首页Swifty Coding
Swift_3.0_实战篇(2)_cocoaPods导入OC第三

Swift_3.0_实战篇(2)_cocoaPods导入OC第三

作者: 双门 | 来源:发表于2017-03-03 18:54 被阅读41次

    先吐槽一下,Swift 好多坑,不过反而更期待了。
    1、Swift语言使用cocoapods配置Podfile文件时要加上use_frameworks!这句代码,作用是把三方库打包成静态库
    2、swift调用oc的三方库
    a、要建立一个桥接文件,然后在target——>build setting中搜索 (这里不多介绍,小白请谷歌)


    图一

    之后在桥接文件里面导入第三方OC的头文件 eg:


    图二.png
    如果此刻运行 或许会报错找不到该第三方的头文件

    之后要设置一个User Header Search Paths,否则在需要用三方库的地方是调不出来的。在target——>Build Setting里找到search Paths,双击User Header Search Paths后面的空白处,设置目录路径为${SRCROOT} ,后边选择recursive。下图是我的,加不加“/Pods” 都可以

    图三.png

    之后是我遇到的坑
    在 TARGETS 选择Build Phases ,找到 Link With Library
    导入 第一个,(是我的第三方)


    图四.png

    但是并不是所有的第三方都需要在这里添加,说到这我们要说一下 在 Podfile 里面的添加的 use_frameworks!
    用cocoapods 导入swift 框架 到 swift项目和OC项目都必须要 use_frameworks!
    (1)如果在Podfile文件里不使用 use_frameworks! 则是会生成相应的 .a文件(静态链接库),通过 static libraries 这个方式来管理pod的代码。
    (2)如果使用了use_frameworks! 则cocoapods 会生成相应的 .frameworks文件(动态链接库:实际内容为 Header + 动态链接库 + 资源文件)(3)Linked:Pods_xxx.framework包含了其它用pod导入的第三方框架的.framework文件。

    如果 第三方有头文件,是以 .h .m 的形式出现在 Pods 目录下的 那么 在桥接头文件里面 #import " xxxxx/xxxxx.h ",其它swift文件中用到不需要再import;并且需要在Link With Library 里面添加 第三方名.framework 文件

    如果只有头文件.h ,该第三方直接是以 .framework 文件 的形式出现在 Pods 目录下的 那么 则在每个需要用到的swift文件里 import 就可以了。

    iOS 静态库,动态库与 Framework 浅析

    相关文章

      网友评论

        本文标题:Swift_3.0_实战篇(2)_cocoaPods导入OC第三

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