OC引用Swift代碼

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

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

@objc public class XX : XX

{

}

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

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

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

第一種就是:在SWIFT_OBJC_BRIDGING_HEADER將其選項刪除,然后新建的時候就會又提示讓你建立。

第二種就是:建立一個新的文件然后在SWIFT_OBJC_BRIDGING_HEADER,將路徑輸入進去。

這個文件的作用就是當swift需要使用OC代碼的時候在SWIFT_OBJC_BRIDGING_HEADER文件將OC的頭文件導入進去。

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

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

3.工程的一些配置

Packaging下面的Defines Module設置為YES

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


一個莫名其妙的錯誤:

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

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

1:簡化這個Framework Search Path只留下

$(inherited)

$(SRCROOT)

2:將libxml2去了。

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

相關閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容