Object-C 和 Swift 項目混編分為兩種情況:
第一種:在 Object-C 創建的項目中混編 Swift 代碼
第二種:在 Swift 創建的項目中混編 Object-C 代碼
在實際使用中,兩種方式的具體實現一樣,比如:在 Object-C 類中調用 Swift 類,或者在 Swift 類中調用 Object-C 類,這個在兩種工程中是一樣的。下面就以 Object-C 項目為例。
Object-C 項目混編 Swift 代碼
第一步:在 Object-C 創建的項目中新建一個 Swift 類,并創建一個類型為String名字為name的可選屬性。
如果你是第一次在工程中創建 Swift 類,工程會提示你是否需要創建 Objective-C bridging header,這個就是所謂的橋接文件。點擊 Create Bridging Header,此時會在你的工程中多出一個文件(文件命名規則是:工程名-Bridging-Header.h)
第二步:在 Object-C 類中調用剛才創建的 Swift 類。首先需要在調用 Swift 代碼的類中導入 Swift 頭文件,這個是固定寫法(規則是:工程名-Swift.h),然后就可以調用我們剛才的 Swift 代碼了。
按住 Command 用鼠標點擊 "OC項目-Swift.h" 頭文件,我們可以看到 Xcode 把我們剛才的 Swift 代碼轉換成了 Object-C代碼,所以在我們需要用到 Swift 代碼的類中導入這個文件就可以了。
第三步:在 Swift 類中調用 Object-C 代碼,這個時候就用到了橋接文件,如果你想在 Swift 代碼里調用 Object-C 代碼,那么你就需要在橋接文件里聲明 .h 頭文件。
? ? ? 首先創建一個 Object-C 類用于在 Swift 類中調用
? ? ? 在橋接文件里聲明我們需要調用類的 .h 文件(頭文件)
? ? ? 在 Swift 類里調用 Object-C 代碼
第一步中,當我們第一次創建 Swift 類時,系統會提示:Would you like to configure an Object-C bridging header? 如果我們點了 Don't Create 那就沒有橋接文件了,那怎么辦?
我們可以手動創建橋接文件
首先,創建橋接文件(文件命名規則是:工程名-Bridging-Header.h)
其次,配置橋接文件路徑
至此,橋接文件創建成功。