OC和Swift混编使⽤Pod管理第三⽅库的问题
OC和Swift混编Pod引⼊第三⽅库的问题
问题描述:Swift应⽤OC 的开源框架,需要创建⼀个桥接头⽂件,问题就出在这个看似简单,却隐藏着⼀个巨⼤的问题:⼀切都按部就班的在桥接头⽂件中引⼊了OC 头⽂件,但是xcode总是报错不到该⽂件。接下来详细描述问题和原因。
1.为了在Swift项⽬中引⼊OC 开源框架,我使⽤了pod⼯具引⼊。然后下图:
2.之后创建桥接⽂件:
3.然后就是在配置⽂件中设置桥接⽂件路径:
4.到这⾥就看似完成了,⼀切都很简单。但是,当编译时问题就来了,如下图:
原因是不到该⽂件。可是明明使⽤了pod⼯具引⼊了啊。(注:百度清⼀⾊的都是以上步骤,该问题并未在百度查询到问题原因和解决⽅案。所谓博客恐怕都是出⾃⼀⼈)
5.在作了⼤量的测试和摸索后,终于得意解决。问题的根本原因就是我之前⽤pod引⼊了Swift开源框架,为了⽅便,在引⼊OC开源框架时我同样是使⽤了pod⼯具。我们回看第⼀步
Swift框架:
pod 'SnapKit', '~> 0.30.0.beta1'
pod 'Alamofire', '~> 3.4.0'
pod 'SwiftyJSON', '~> 2.3.2'
OC框架:
pod 'SVProgressHUD'
pod 'MJRefresh'
同样还有⼀句话:
use_frameworks!
没错,简单的说,在OC开发时并不⽤使⽤该语句,但是Swift开发时使⽤pod⼯具就需要加上这句话。这就导致了OC 和 Swift公⽤同⼀个项⽬⼯程中的pod时造成了以上显⽰的错误,即使其他步骤都没有错,但是错误原因就是不到⽂件。
swift语言怎么样⾄于为什么会这样,我联想到了之前看到过的⼀篇⽂章好像是有这么⼀句话(记不太清楚了)OC是动态语⾔,⽽Swift是静态语⾔,这就是为什么两者在使⽤pod时关于这句话是否要加上的浅显原因(其实深⼊的东西就需要接着百度了)
既然原因到了,解决它就好办了,我们只要把这两种语⾔的开源框架分开管理就可以了。。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论