制作 Swift 和 Objective-C Mixed 的 Pod
来源:南栀倾寒
www.jianshu.com/p/c7623c31d77b
如有好文章投稿,请点击 → 这里了解详情
知识背景
What is CocoaPods(https://guides.cocoapods.org/using/getting-started.html)
What did CocoaPods do?(https://guides.cocoapods.org/using/using-cocoapods.html)
In Xcode, with references directly from the ruby source, it:
Creates or updates a workspace.
Adds your project to the workspace if needed.
Adds the CocoaPods static library project to the workspace if needed.
Adds libPods.a to: targets => build phases => link with libraries.
Adds the CocoaPods Xcode configuration file to your app’s project.
Changes your app’s target configurations to be based on CocoaPods’s.
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类 :
发布公共Pod给所有开发者使用。
制作私有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有时候有缓存,没事就应该编译一下
制作 Swift 和 Objective-C Mixed 的 Pod相关推荐
- Swift调用Objective C的FrameWork
很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用. 第一步 创建一个空的工 ...
- GitHub上Swift开源项目!
swift-open-project 这里汇集了目前为止最为流行的Swift开源项目,选取SwiftGuide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系thinkloki@gma ...
- Swift中的#pragma mark?
本文翻译自:#pragma mark in Swift? In Objective C, I can use #pragma mark to mark sections of my code in t ...
- swift 脚本_Swift脚本和命令行参数
swift 脚本 In this tutorial, we'll discuss how to create Scripts in Swift. Yes, Swift is a scripting l ...
- 网易漫画Swift混编实践
\ 本文为『移动前线』群在4月8日的分享总结整理而成,转载请注明来自『移动开发前线』公众号.\ 嘉宾介绍 \ 胡波,来自于网易杭州研究院,之前在网易杭研移动应用部参与网易公开课/网易看游戏/网易云阅读 ...
- afn访问本地html,Swift利用AFN实现封装网络请求详解
前言 相信大家都知道,我们一般在一个项目中,网络请求都封装成一个单例,以确保整个项目的网络请求 Session 是同一个. 单例模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供,下面话不 ...
- 苹果新贵 Swift 之前世今生
摘要 : 做为一个70后程序员,克里斯先后发明了 LLVM.Clang 和 Swift,请问你做了什么? 上 周出差劳顿,这篇文章几次动笔都未完成,常常躺倒床上就昏睡过去.南方的天气闷热潮湿,让我感到 ...
- Objective C范型
范型 范型编程是一种程序语言设计范式,它允许程序员在使用强类型的语言编写代码的时候,延迟确定具体的类型. 以Swift代码为例,假如有一个需求是要交换两个int,很容易写出类似代码 func swap ...
- Swift 代码调试核武-LLDB调试基础
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow 前言:LLDB是个开源的调试器,与XCode绑定 ...
最新文章
- 使用简单的轻量级移动web应用开发框架 - Sidetap
- 关于TP-LINK宽带路由器上的“转发规则”功能用途及设置办法
- css3抽奖转盘,从零制作CSS3抽奖大转盘
- 基于stm32f405控制三相无刷电机例程_直流有刷电机和无刷电机的区别
- 搜索页面html代码怎么写,页内搜索功能源代码
- WebService之Java原生态支持
- c语言欺凌,以下哪种行为属于“校园欺凌”?A取绰号B暴力殴打同学C恶意辱骂D企图教唆集体...
- deepfakes怎么用_[mcj]deepfakesApp使用说明(2)
- c语言计算坐标,求助,有关坐标计算的
- js,jquery小知识点
- TwoStep Cluster
- Android电池驱动【转】
- 2008评估过期 server sql_SQLServer2008R2数据库评估版已经过期解决办法.doc
- 安卓内录声音软件scr_录屏内录大师软件下载
- 关于计算机的好处的英语作文,关于电脑好处的英语作文
- 12123选牌漏洞_揭秘交管12123六大车牌选号技巧
- ICEM-tube-water
- css中鼠标手,css各种鼠标手型集合
- 即构推出微信引流方案,助力在线教育平台大幅降低获客成本
- 首屏渲染优化性能优化