iOS第三方库之OC转Swift
使用Swift进行iOS开发的小伙伴在开发过程中有没有遇到过这样一个问题,当想使用一些大型SDK或者GitHub里较出名的包时,发现这些包都是用OC写的,并没有Swift的版本,其中的缘由是iOS开发经历了两个时期,第一个时期是使用OC开发,第二个时期就是使用Swift开发,目前使用Swift开发逐渐变成主流,但很多OC的包还没有重构成Swift版本,那么当我们想使用这些OC写的第三方包时该怎么办呢?这时候我们就可以通过桥接文件来将OC代码变成Swift语法来使用。
就以一个较为出名的包举例:MBProgressHUD,该功能包常用于写加载框及提示框功能,且经常维护,但目前还未重构成Swift版本。
具体操作如下:
一、通过cocoapods导入MBProgressHUD
1.在Podfile文件中写入命令
2.在终端执行pod install 命令引入该OC包
二、创建桥接文件-连接OC和Swift的文件
官方文档:https://developer.apple.com/documentation/swift/importing-objective-c-into-swift
1.创建.h文件
2.设置路径
创建好桥接文件后,进入项目找到OC Bridging Header,点击第二个,将桥接文件直接拖入编辑框设置路径。
三、引入第三方包
在桥接文件中通过OC语法引入包,接着在整个项目中都可以使用该包的功能了。
以上就是本章的全部内容,喜欢就点个赞和收藏留个足迹吧,有关Podfile中内容的解析也可以在作者主页找哦。
Tmylyh: Model是数据层,业务层导致的数据变更逻辑放在ViewModel层,代码里单独独立出来一个ViewModel层就是为了来做业务和数据的解耦合,这样实现了view和model的双向绑定,一边发生变化另一边就会得到通知,而逻辑处理都是放在viewmodel层的,所以代码结构是没有什么问题的哈
裸睡老狗: 包含目录和库目录还有链接器都弄了,提示“无法解析的外部符号”
hcsaaron: 你前面引文里关于Model层的说明说的挺好的,最后你给出来的实例代码却和前面说得大相庭径?示例代码中Model只是一个简单的数据模型,不包含业务逻辑处理,而Cell中竟然持有了Model示例。前面说了一大堆MVC、MVVM的理念我觉得是不错的,但后面的示例代码是否没有理解到位?
MiamiamiazZ: ret =1 是怎么回事哇
LIU CHANG AN: 我刘zy为学长点赞👍