OC引用Swift代碼

之前的工程代碼都是用OC的,一直想轉(zhuǎn)成swift的,但是感覺全轉(zhuǎn)不太靠譜,所以決定一部分一部分慢慢轉(zhuǎn),所以需要用到OC和Swift代碼混編。

1.創(chuàng)建swift代碼。

@objc public class XX : XX

{

}

@objc ,public 最好都加上,然后子類也加上比如繼承NSObject

然后就會(huì)問你是否創(chuàng)建header文件

選擇是就行了,然后自動(dòng)創(chuàng)建一個(gè)$(Project_Name)-Bridging-Header.h的文件,$(Project_Name)默認(rèn)是工程名字,但是也可以修改。如果你選擇了否或者不小心把這個(gè)文件刪了怎么辦了。

第一種就是:在SWIFT_OBJC_BRIDGING_HEADER將其選項(xiàng)刪除,然后新建的時(shí)候就會(huì)又提示讓你建立。

第二種就是:建立一個(gè)新的文件然后在SWIFT_OBJC_BRIDGING_HEADER,將路徑輸入進(jìn)去。

這個(gè)文件的作用就是當(dāng)swift需要使用OC代碼的時(shí)候在SWIFT_OBJC_BRIDGING_HEADER文件將OC的頭文件導(dǎo)入進(jìn)去。

2.xcode自動(dòng)幫你創(chuàng)建了$(Project_Name)-Swift.h文件

這個(gè)自動(dòng)幫你創(chuàng)建好了。然后你在OC類里面#import這個(gè)文件以后就能直接使用Swift的代碼了。

3.工程的一些配置

Packaging下面的Defines Module設(shè)置為YES

Swift Compiler - Code Generation下面的Objective-C Bridging Header,Objective-C Generated Interface Header Name比較重要的兩個(gè)路徑配置選項(xiàng)


一個(gè)莫名其妙的錯(cuò)誤:

error:opening import file for module 'Swift':Not a directory

我只把Framework Search Path里面的libxml2去了就編譯通過了。stackoverflow里面的完整答案是:

1:簡(jiǎn)化這個(gè)Framework Search Path只留下

$(inherited)

$(SRCROOT)

2:將libxml2去了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言: Swift語言出來后,可能新的項(xiàng)目直接使用Swift來開發(fā),但可能在過程中會(huì)遇到一些情況,某些已用OC寫好...
    瘋狂的電腦閱讀 2,353評(píng)論 0 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,252評(píng)論 4 61
  • 都說最好的愛情是你寵著我,我管著你,其實(shí),最好的愛情是你有你的性格,我有我的愛好,我們相互平衡又相互獨(dú)立,不卑不亢...
    大美美121閱讀 163評(píng)論 0 0
  • 今天我把棕熊的故事讀完了。
    又呆又萌的萌閱讀 89評(píng)論 0 0