加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

制作 Swift 和 Objective-C Mixed 的 Pod

发布时间:2020-12-14 05:14:38 所属栏目:百科 来源:网络整理
导读:(点击 上方公众号 ,可快速关注) 来源:南栀倾寒 ?? www.jianshu.com/p/c7623c31d77b 如有好文章投稿,请点击 → 这里了解详情 知识背景 What is CocoaPods(https://guides.cocoapods.org/using/getting-started.html) What did CocoaPods do?(https:/

(点击上方公众号,可快速关注)

来源:南栀倾寒 ??

www.jianshu.com/p/c7623c31d77b

如有好文章投稿,请点击 → 这里了解详情


知识背景


  1. What is CocoaPods(https://guides.cocoapods.org/using/getting-started.html)

  2. What did CocoaPods do?(https://guides.cocoapods.org/using/using-cocoapods.html)


In Xcode,with references directly from the ruby source,it:

  1. Creates or updates a workspace.

  2. Adds your project to the workspace if needed.

  3. Adds the CocoaPods static library project to the workspace if needed.

  4. Adds libPods.a to: targets => build phases => link with libraries.

  5. Adds the CocoaPods Xcode configuration file to your app’s project.

  6. Changes your app’s target configurations to be based on CocoaPods’s.

  7. Adds a build phase to copy resources from any pods you installed to your app bundle. i.e. a ‘Script build phase’ after all other build phases with the following:

  • Shell: /bin/sh

  • Script: ${SRCROOT}/Pods/PodsResources.sh

大意是,CocoaPods是一个依赖管理工具,使用CocoaPods可以自动的去分析依赖,然后通过脚本去将第三方依赖复制编译为静态库然后链接进项目。~~~等。


  • 制作Pod


有时候我们有把代码做成一个轮子给别人用情况,我们需要按照官方的教程Making CocoaPods去制作。

教程分为2类 :

  1. 发布公共Pod给所有开发者使用。

  2. 制作私有Pod。 方法较为简单。自行查阅资料即可。这里不再赘述。

  • Swift和Objective-C Mixed


参考官方的文档(文末指出),混编里面包含有2种调用情况:

Question1. Swift调用Objective-C
Question2. Objective-C调用Swift


这里我新建一个项目 命名为Mixed(Single View Application), 创建一个文件夹Classes用于存放源代码

创建一个Objective-C Class O 继承自NSObject 创建一个Swift Class S 继承自NSObject


  • Answer1: 为Swift源代码添加一个 XXX.h头文件这里为Mixed-Bridging-Header 在这个文件中导入需要访问的Objective-C 源代码的头文件。



headerConfig


有时候Xcode反应会稍微延迟一点。手动编译一下即可。做完这个配置,Swift即可访问Objective-C 源代码。

代码如图:



swiftAccessObjc


  • Answer2: Objective-C 访问Swift源代码 需要导入系统为项目生成的头文件,默认为Module+Swift.h 当然自己也是可以修改的, 导入之后,编译一下(Xcode有时候有缓存,没事就应该编译一下

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读