iOS中OC與Swift互相橋接混編(注意項目中有多個TARGETS的情況)

一、Swift項目中橋接OC文件

Swift項目中橋接OC文件相對來說比較簡單,一般在第一次創(chuàng)建OC文件的時候Xcode會彈出創(chuàng)建橋接頭文件的提示

直接點擊Create Bridging Header系統(tǒng)就自動為我們創(chuàng)建好了橋接頭文件,并且自動將頭文件路徑配置好了,所以這種方式非常便捷

但是,有時候我們并不是第一次在Swift項目中創(chuàng)建OC文件時,Xcode并不會再為我們自動創(chuàng)建橋接文件,需要我們自己創(chuàng)建,然后配置路徑。

我們自己新建一個.h文件。命名為xxx-Bridging-Header.h就行了,也可以隨意命名,創(chuàng)建好以后,在Build Settings中找到上圖中的Objecttive-C Bridging Header選項,然后將創(chuàng)建好的head文件拖到這個路徑配置中,就可以了

然后在創(chuàng)建的這個head文件中#import需要使用到的OC文件。就可以在Swift中索引出OC文件的類了。


二、OC項目中橋接Swift文件

一般在OC項目中橋接Swift文件,只需要引入頭文件#import "xxx-Swift.h"就可以在OC中調用Swift相關的類了。xxx為項目的Project Name

但是,在實際橋接中,常常會遇到報錯'xxx-Swift.h' file not found,頭文件找不到的情況。

因為項目配置中橋接頭文件的名稱有可能和我們項目名稱不一致,所以會導致橋接頭找不到。

這個時候我們需要檢查Build Setting中的Objecttive-C Generated Interface Header Name選項是否和我們import的名稱一樣,需要改成一樣的就可以解決報錯問題了。

如圖,如果這個選項中的名稱為test-Swift.h,那么我們在OC中橋接的時候就應該為#import "test-Swift.h",才能不報錯。

三、如果遇到有多個TARGETS的情況

如果遇到項目中有多個TARGETS的情況,我們在創(chuàng)建相應的OC/Swift文件的時候需要選中所有需要橋接的TARGETS選項,才能在對應的TARGETS的Build Setting中看到對應橋接路徑配置的選項,然后每個TARGETS的Head都需要配置一樣

不然在切換到不同的TARGETS下以后,也有可能因為不同TARGETS下配置的Head不一致,導致在不同的TARGETS下再次出現(xiàn)'xxx-Swift.h' file not found的錯誤。

因為Swift是不需要引用頭文件就可以互相調用的,所以在OC中橋接Swift只需要引入一次,就可以調用項目中所有的Swift文件類了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容