上篇在介绍了Swift与OC混编开发所需要准备的一些必要条件 Swift-Objective-C混编注意事项,今天只说一下我在实际项目中所踩过的坑,希望你们以后绕过这些坑吧。
###1、 使用cocopods管理Swift文件所遇到的问题:
我们在开发的过程中,各种优秀的框架帮我们快速的解决了各种疑难杂症,可能我们在之前的OC开发中已经习惯了使用这些框架去开发,但是本人还是建议自己可以去研究研究优秀框架的实现思路,提高自己,不至于被淘汰。
因为我们公司之前的项目都是用纯OC写的,现在有了新的需求,老大要求我们接触Swift,慢慢转纯Swift,令下了,我们不执行又能咋滴!本来以为使用cocopods引入Swift框架跟oc一样,直接写入Podfile文件里面就行了,谁曾想踩坑开始了....
一开始直接在Podfile里面引入Snapkit框架 Snapkit地址以及介绍 Snapkit框架是一个跟Masonry一样作用的框架都是用来设置约束的框架,对我们来说用起来很方便,这里不做过多介绍,我按照原来OC的思路去引入Snapkit框架,如图:
后面就是保存+pod install,本来以为皆大欢喜,打开工程编译各种报错,竟然会提示之前引入的第三方文件找不到
图片
但是这个不可能的啊,我之前还用着好好的,想了一会,感觉根源还是在Snapkit上,所以果断删掉,重新编译,没问题了;这个时候我想到了Swift的文件和OC文件在Xcode中位置编译的位置不一样,后来也试了很多,网上各种找,在各种尝试中后来在引入头文件的地方修改以后就可以了
图片
使用<>导入的是类库,使用双引号引入的是类名,在混编中可能是Swift文件编译地址的变化所以引起了有些类库找不到的原因,具体的什么原因我还没找到,希望有哪位大神了解的可以联系一下。当然还有其他的解决办法,那就是用Carthage来引入Snapkit框架。
对于其他的Swift库文件使用cocopods一般都是可以的,同时也推荐使用Carthage这个软件也是管理第三方的工具,优缺点很明显,网上都有介绍,这里不做过多的陈述,个人认为,Carthage对于一些不用修改的库文件用起来是很方便的,如果那些库不需要你去做任何的修改;但是对于有的优秀的第三方并不能完全的满足你的需求,你需要做一些调整的话,这个时候使用Carthage就不如cocopods了,视情况而定,根据自己需求吧。
###2、宏文件公共文件的建立
大家接触过Swift的都知道,Swift里面没有宏定义,所以也就没有pch文件,这个时候我们可以单独的创建一个空的Swift文件,在里面定义一些常用的变量和属性,以及设置;对于一些类的扩展,类里面的方法定义个人建议写在扩展里面,这样更有层次感,看起来也比较容易理解,对于比较大的项目,一个文件里面代码很多的话阅读起来比较方便。
写的都是自己遇到的一些问题,有什么表述不对的地方,还希望各位给与指正,同时也希望这篇文章可以解决你的问题。