iOS中objc和swift混編經(jīng)驗(yàn)談

更多精彩資訊 實(shí)用技巧 【點(diǎn)我

swift 語(yǔ)言是蘋果公司在2014年的WWDC大會(huì)上發(fā)布的全新的編程語(yǔ)言。Swift語(yǔ)言繼承了C語(yǔ)言以及Objective-C的特性,且克服了C語(yǔ)言的兼容性問(wèn)題。Swift語(yǔ)言采用安全編程模式,且引入了多種新功能,使得編程工作更加簡(jiǎn)便,靈活!今天小編帶大家?guī)?lái)oc和swift混編的知識(shí)點(diǎn)

新的項(xiàng)目直接使用swift來(lái)開發(fā),但可能在過(guò)程中會(huì)遇到一些情況,某些已用OC寫好的類或封裝好的模塊,不想再在swift 中再寫一次,哪就使用混編。這個(gè)在iOS8中是允許的。

先中簡(jiǎn)單的入手,先研究在同一個(gè)工程目錄下混合使用的情況。


為了演示。先準(zhǔn)備兩個(gè)類

第一種:在swift的類里面調(diào)用oc的類

這個(gè)需要一個(gè)橋接文件 ,(感覺(jué)類似于oc里面的頭文件)

首先 新建一個(gè)工程 開發(fā)語(yǔ)言選擇swift


image

然后創(chuàng)建一個(gè)OC的類

image

在創(chuàng)建的時(shí)候會(huì)提示出現(xiàn)創(chuàng)建一個(gè)橋接文件

image

此時(shí) Swift工程里面就多了個(gè)OC的類和一個(gè)橋接文件

image

同樣的,當(dāng)你知道這個(gè)swift搜索頭文件的關(guān)系后,就不需要再理會(huì)這個(gè)-Bridging-Header.h的文件了。完全可以手工建一個(gè)并取自己喜歡的名字。如:


image

然后在橋接文件里面導(dǎo)入OC累的頭文件名稱

image

這樣 就可以在Swift的文件里面直接使用OC的類了,但是Swift得類里面的語(yǔ)法還是Swift

image

自此 就實(shí)現(xiàn)了Swift的類調(diào)用OC的類了!

第二種OC類調(diào)用Swift

oc調(diào)用swift的設(shè)置方法如下:

1、確保將框架 target 的 Build Settings > Packaging > Defines Module 設(shè)置為 Yes

2、將 build setting 中的 Product Module Name 修改為工程名。

之后的項(xiàng)目會(huì)自動(dòng)生成swift的頭文件頭文件名稱為Product Module Name-Swift.h (Product Module Name為工程名)

所有的swift都會(huì)在這個(gè)頭文件里

接下來(lái)直接調(diào)用方法就可以了,不再需要引入相關(guān)頭文件了

那么怎么在OC的類調(diào)用Swift的文件呢?

我們都知道 在OC里面 引用別的文件內(nèi)容時(shí) 需要導(dǎo)入頭文件,但是swift的類并沒(méi)有頭文件,那怎么辦呢?其實(shí),每個(gè)swift的類都有頭文件 我們可以在這兒查看到.

image

然后我們只需要在OC的類的.m文件里面導(dǎo)入 "工程名"加上 -swift.h (固定格式) 就可以在OC的類里面是有Swift的累了 而且還是使用OC語(yǔ)法!

image

更多精彩資訊 實(shí)用技巧 【點(diǎn)我

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

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

  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,171評(píng)論 3 119
  • 自從蘋果2014年發(fā)布全新的開源趣味性語(yǔ)言Swift一來(lái),很多開發(fā)者都拜倒在它的石榴裙下.其實(shí)swift語(yǔ)言的確有...
    少年_如他閱讀 4,562評(píng)論 3 9
  • 人越長(zhǎng)大,越發(fā)現(xiàn)時(shí)間過(guò)得真快。以前一整天玩泥巴、彈珠很開心,你記得每一個(gè)快樂(lè)的瞬間,也從不考慮明天的事。而現(xiàn)在,你...
    Z小姐不吐不快閱讀 537評(píng)論 1 2
  • 家里換新車了,想著要編個(gè)新的車掛。我編不出太繁復(fù)的結(jié)飾,索性簡(jiǎn)潔至上吧。 翻箱倒柜,找出一個(gè)比較大的平安扣,幾顆拆...
    一念見花開閱讀 256評(píng)論 0 0
  • 其實(shí)呢,從注冊(cè)簡(jiǎn)書到現(xiàn)在,也快半年了。在這里看到了諸多有想法的人,無(wú)論褒貶與否,都還算看得下去。不至于說(shuō)每個(gè)話題大...
    初心悠然閱讀 351評(píng)論 2 1

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