上篇在介紹了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文件,在里面定義一些常用的變量和屬性,以及設置;對于一些類的擴展,類里面的方法定義個人建議寫在擴展里面,這樣更有層次感,看起來也比較容易理解,對于比較大的項目,一個文件里面代碼很多的話閱讀起來比較方便。
寫的都是自己遇到的一些問題,有什么表述不對的地方,還希望各位給與指正,同時也希望這篇文章可以解決你的問題。