oc 和swift 混編之--準備工作

之前的一段時間在學習swift,覺得可以出師了,哈哈哈,遂打算把oc 和swift混編起來,混起來才發(fā)現(xiàn)遠遠比想象的要復雜。當然在這個過程中,自己也學到了不少知識,享受到了不少樂趣,簡記下來,也算是對自己的一個總結(jié),如果能幫到別人那是更好不過的啦!好啦,開始吧!

因為當前正在做的項目是用oc 寫的,也不打算用swift重新寫一遍,所以直接在當前項目里加入swift代碼,這當然是允許的,不過在此之前要做一些準備工作。

1.創(chuàng)建橋接文件

首先我們直接在當前項目上新增加一個文件,語言選擇swift,然后創(chuàng)建,此時,會彈出一個框,詢問你是否需要Xcode自動幫你創(chuàng)建一個橋接文件,當然我們選擇是啦!點擊“Create Bridging Header”

505C3601-7BD3-4F2C-AA9C-5C47145558E3.png

然后我們就發(fā)現(xiàn),項目目錄下多了兩個文件:一個是我們創(chuàng)建的文件,另外一個是Xcode給我們創(chuàng)建的橋接文件:


B2397BB8-DABC-4B44-A676-9B71913E2E82.png

但是別著急,看見了嗎,報錯啦!這是為什么呢?因為我新創(chuàng)建的文件是繼承了一個之前oc 寫的類作為父類,但是其實swift并不知道這個類是誰,此時Xcode為我們創(chuàng)建的橋接文件就應(yīng)該發(fā)揮作用了,以后swift的類和oc 的類要通信就靠它了,剛才那個紅叉怎么解決呢,別急,接下來就說這個問題。

2.oc 和swift通信的中間人

當然就是這個橋接文件了。我們把swift 要引入的oc 的類,在這個文件里導入,然后再Command+B 一下,看,紅叉沒有了


A47BB66F-2291-4791-B7D2-B75379B0EEF8.png

以后,swift 要用到哪個oc 的類,import 到這個 橋接文件,這樣,swift類就可以愉快得和oc 的類進行通信了。

3.oc 文件使用swift

那反過來怎么辦呢?也很簡單,在你需要使用的那個類里邊,import 這樣一個文件 “項目名-Swift.h”:


8E2FD4C0-4DF2-4A1B-BB66-9F0D43E5BF35.png

這樣oc 就可以訪問swift了。是不是so easy!

在這里我的項目是叫做 iHome,所以我在oc 類里導入的就是 iHome-Swift.h,后綴 “-Swift.h” 不能變,按住Command鍵,點進這個 iHome-Swift.h 看到了什么?這里邊是swift映射成可以被oc 識別的代碼。

據(jù)說這個 Xcode自動生成的橋接文件是可以刪除然后自己重建的,寫成自己喜歡的名字,放到一個固定的屬性就可以,具體可以參考:http://blog.csdn.net/fengsh998/article/details/34440159

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,422評論 4 61
  • Android開源項目系列匯總已完成,包括:Android開源項目第一篇——個性化控件(View)篇[https:...
    愛情小傻蛋閱讀 1,438評論 0 7
  • 卷耳,聽得見溫情么 不盈頃筐或者 終日不成章 生于遠道的 火焰,碧玉,草木 逐一 涅槃,碎裂,綿遠 一根一根豎起的...
    李榆閱讀 377評論 12 11

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