天天看點

【iOS開發】Swift、OC 混編用到的 Bridging-Header.h

現在 Github 上絕大多數的庫都是用 Objective-C 語言寫的,當我們使用 Swift 進行開發的時候呢,無論是用 CocoaPods 還是手動把庫內建到自己的項目中,一開始都是不能直接使用的。

需要用到 Bridging-Header.h 檔案

比如在這個 Swift 項目中,我手動加入了 OLImage 這個用OC寫成的庫,并且添加了所有需要的 Framework,但是代碼中輸入“OLImage”卻悲傷地發現 Xcode 沒有自動給你補全代碼——第三方庫引入未成功。

解決方案:

在 YOUR PROJECT NAME-Bridging-Header.h 檔案中,import 所有 OLImage那個庫用到的頭檔案。至于有哪些檔案,去庫裡面一個一個檔案點開看就可以了。

可是 YOUR PROJECT NAME-Bridging-Header.h 是怎麼來的呢 ?

當你在 Swift 工程中加入 OC 檔案,Xcode 一般會自動檢測到這一點,并且詢問你是否需要添加這個檔案,而如果 Xcode 沒有給你這個提示,你可以手動觸發它:

添加檔案

選擇 Header File

然而僅僅是這樣,不管你在 Header File 裡面 import 多少内容,都沒有用,因為你添加進來的這個 .h 檔案并不會被編譯。

這個時候,進入 YourTarget -> Build Settings -> Swift Compiler-Code Generation 這個設定項裡面,把你的 .h 檔案的【絕對路徑】輸入到 Objective-C Bridging Header 裡面就可以了。

(如何最快擷取絕對路徑:直接把某個檔案或檔案夾,拖動到文本輸入框,路徑會自動顯示出來)