Objective-C和Swift混編

丟的錢找到了發表於2018-03-29

    雖然swift的版本飆的很快,但在iOS端專案中,還是會需要C/C++的庫來幫助開發,這時會用Objective-C來包一層。這裡記錄一下混編的過程.

swift呼叫oc

    將Objective-C匯入Swift要在同一個app target中匯入Objective-C檔案供Swift使用,你需要依賴Objective-C的橋接標頭檔案(Objective-C bridging header)來暴露給Swift。當你新增Swift檔案到現有的Objective-C應用時,Xcode會自動建立這些標頭檔案,反之亦然。

    在Build Settings中,確保Objective-C橋接標頭檔案的build setting是基於 Swift編譯器,即Code Generation含有標頭檔案的路徑。這個路徑必須是標頭檔案自身的路徑,而不是它所在的目錄。然後在橋接標頭檔案中,加入oc的標頭檔案,在swift中即可引用oc的類.

    對於C/C++的檔案,處理方式和Objective-C一樣.

oc呼叫swift

    確保將框架target的Build Settings > Packaging > Defines Module設定為Yes;在修改build setting中的Product Module Name即可。之後的專案會自動生成swift的標頭檔案,標頭檔案名稱為Product Module Name-Swift.h所有的swift都會在這個標頭檔案裡

相關文章