本文將詳細介紹一下OC和swift混編問題,其中涉及兩大部分:1)oc項目中混編swift的實現(xiàn); 2)oc或者swift第三庫的導入及使用.
1 oc項目中混編swift
在oc項目中想要使用swift,并且實現(xiàn)相互調用,需要一些基本的設置,橋接文件也是必須得.
1. 1 基本設置支持swift
在bulid setting中找到 Packaging 下的 define module,將是否定義模塊布爾值改成YES,這樣OC就可以支持swift了.
1. 2 創(chuàng)建橋接文件
橋接文件可以在你創(chuàng)建swift文件的時候Xcode自動生成,也可以自己手動創(chuàng)建,手動創(chuàng)建也就是一個頭文件(.h文件).
這里需要說明一點的是,在oc項目中創(chuàng)建的swift文件必須都要繼承自NSObject基類,而你自己想要創(chuàng)建的一些類可以這樣來創(chuàng)建:
創(chuàng)建步驟1
創(chuàng)建步驟2
創(chuàng)建步驟3
這里選擇Create Bridging Header,如果不選的話,那就自己手動創(chuàng)建,然后指定索引位置
創(chuàng)建步驟4
第三步中如果沒有創(chuàng)建橋接文件的話,手動創(chuàng)建一個橋接文件,然后build setting 中搜索 Objective-C Bridging Header,將你手動創(chuàng)建的橋接文件路徑輸入進去
橋接文件設置
1.3 swift中調用oc文件
現(xiàn)在基本上可以實現(xiàn)swift調用oc中代碼了,首先在橋接文件中導入你想在swift中用到的oc類
導入oc類
使用oc中的類
1. 4 oc中調用swift文件
2 oc和swift第三方庫的使用
如果你的項目用cocoapods來管理你使用的第三方庫,并且OC項目中已經集成了多個第三方庫,那么這時你想在導入swift編寫的第三方庫,這時你不能用cocoapods管理第三方庫了,因為Swift連接時不支持靜態(tài)庫,cocoapods也在其Podfile中有說明:
Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
翻譯過來就是:如果你想使用swift或者動態(tài)庫,就把下面一行注釋打開
然而打開后你是編譯不過去的,這時需要手動導入swift庫
下面手動導入Alamofire作為例子:
1)首先下載Alamofire項目源碼,解壓
可以刪除多余的不需要的文件,比如Example文件夾,等等
2)將Alamofire項目整個拖到你的項目中
3)在Embedded Binaries中添加Alamofire.framework
這樣就可以cocoapods管理OC第三方庫,swift第三方庫手動管理,實現(xiàn)不同第三方框架的調用.