一弧哎、Swift項(xiàng)目中橋接OC文件
Swift項(xiàng)目中橋接OC文件相對(duì)來(lái)說(shuō)比較簡(jiǎn)單傲绣,一般在第一次創(chuàng)建OC文件的時(shí)候Xcode會(huì)彈出創(chuàng)建橋接頭文件的提示
直接點(diǎn)擊Create Bridging Header系統(tǒng)就自動(dòng)為我們創(chuàng)建好了橋接頭文件揪阶,并且自動(dòng)將頭文件路徑配置好了虹茶,所以這種方式非常便捷
但是桥爽,有時(shí)候我們并不是第一次在Swift項(xiàng)目中創(chuàng)建OC文件時(shí)讶坯,Xcode并不會(huì)再為我們自動(dòng)創(chuàng)建橋接文件,需要我們自己創(chuàng)建袍镀,然后配置路徑默蚌。
我們自己新建一個(gè).h文件。命名為xxx-Bridging-Header.h就行了苇羡,也可以隨意命名绸吸,創(chuàng)建好以后,在Build Settings中找到上圖中的Objecttive-C Bridging Header選項(xiàng)设江,然后將創(chuàng)建好的head文件拖到這個(gè)路徑配置中锦茁,就可以了
然后在創(chuàng)建的這個(gè)head文件中#import需要使用到的OC文件。就可以在Swift中索引出OC文件的類(lèi)了叉存。
二码俩、OC項(xiàng)目中橋接Swift文件
一般在OC項(xiàng)目中橋接Swift文件,只需要引入頭文件#import "xxx-Swift.h"就可以在OC中調(diào)用Swift相關(guān)的類(lèi)了歼捏。xxx為項(xiàng)目的Project Name
但是稿存,在實(shí)際橋接中,常常會(huì)遇到報(bào)錯(cuò)'xxx-Swift.h' file not found瞳秽,頭文件找不到的情況瓣履。
因?yàn)轫?xiàng)目配置中橋接頭文件的名稱(chēng)有可能和我們項(xiàng)目名稱(chēng)不一致,所以會(huì)導(dǎo)致橋接頭找不到练俐。
這個(gè)時(shí)候我們需要檢查Build Setting中的Objecttive-C Generated Interface Header Name選項(xiàng)是否和我們import的名稱(chēng)一樣袖迎,需要改成一樣的就可以解決報(bào)錯(cuò)問(wèn)題了。
如圖,如果這個(gè)選項(xiàng)中的名稱(chēng)為test-Swift.h燕锥,那么我們?cè)贠C中橋接的時(shí)候就應(yīng)該為#import "test-Swift.h"辜贵,才能不報(bào)錯(cuò)。
三归形、如果遇到有多個(gè)TARGETS的情況
如果遇到項(xiàng)目中有多個(gè)TARGETS的情況托慨,我們?cè)趧?chuàng)建相應(yīng)的OC/Swift文件的時(shí)候需要選中所有需要橋接的TARGETS選項(xiàng),才能在對(duì)應(yīng)的TARGETS的Build Setting中看到對(duì)應(yīng)橋接路徑配置的選項(xiàng)连霉,然后每個(gè)TARGETS的Head都需要配置一樣
不然在切換到不同的TARGETS下以后榴芳,也有可能因?yàn)椴煌琓ARGETS下配置的Head不一致嗡靡,導(dǎo)致在不同的TARGETS下再次出現(xiàn)'xxx-Swift.h' file not found的錯(cuò)誤跺撼。