Object-C 和 Swift 項目混編

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的可選屬性。

SwiftModel.swift

如果你是第一次在工程中創建 Swift 類,工程會提示你是否需要創建 Objective-C bridging header,這個就是所謂的橋接文件。點擊 Create Bridging Header,此時會在你的工程中多出一個文件(文件命名規則是:工程名-Bridging-Header.h)

bridging Header
OC項目-Bridging-Header.h

第二步:在 Object-C 類中調用剛才創建的 Swift 類。首先需要在調用 Swift 代碼的類中導入 Swift 頭文件,這個是固定寫法(規則是:工程名-Swift.h),然后就可以調用我們剛才的 Swift 代碼了。

ViewController.m

按住 Command 用鼠標點擊 "OC項目-Swift.h" 頭文件,我們可以看到 Xcode 把我們剛才的 Swift 代碼轉換成了 Object-C代碼,所以在我們需要用到 Swift 代碼的類中導入這個文件就可以了。

OC項目-Swift.h

第三步:在 Swift 類中調用 Object-C 代碼,這個時候就用到了橋接文件,如果你想在 Swift 代碼里調用 Object-C 代碼,那么你就需要在橋接文件里聲明 .h 頭文件。

? ? ? 首先創建一個 Object-C 類用于在 Swift 類中調用

OCModel.h

? ? ? 在橋接文件里聲明我們需要調用類的 .h 文件(頭文件)

OC項目-Bridging-Swift.h

? ? ? 在 Swift 類里調用 Object-C 代碼

SwiftViewController.swift

第一步中,當我們第一次創建 Swift 類時,系統會提示:Would you like to configure an Object-C bridging header? 如果我們點了 Don't Create 那就沒有橋接文件了,那怎么辦?

我們可以手動創建橋接文件

首先,創建橋接文件(文件命名規則是:工程名-Bridging-Header.h)

創建橋接文件

其次,配置橋接文件路徑

配置橋接文件

至此,橋接文件創建成功。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言: Swift語言出來后,可能新的項目直接使用Swift來開發,但可能在過程中會遇到一些情況,某些已用OC寫好...
    瘋狂的電腦閱讀 2,338評論 0 9
  • 前言 Swift已推出數年,與Objective-C相比Swift的語言機制及使用簡易程度上更接地氣,大大降低了i...
    仁伯閱讀 19,001評論 30 76
  • Swift從2014年發布到現在,馬上接近三年,經過蘋果的不斷改進和完善,語法方面已經趨于穩定。如果是新建的項目,...
    Lebron_James閱讀 8,709評論 4 43
  • 如易云是什么 如易云的框架是業務系統開發和技術中間件之前的橋梁,是對業務領域深入理解后的精巧封裝,可以大大提升開...
    starteasy閱讀 1,285評論 0 2
  • 【原文】 2·11 子曰:“溫故而知新,可以為師矣?!?【驢解】 孔子說:“前事不忘,后事之師。每一次出行,不僅要...
    王慶義閱讀 298評論 0 0