Swift與OC混編

Swift 已推出數(shù)年魏保,與Objective-C相比Swift的語言機(jī)制及使用簡易程度上更接地氣,也大大降低了iOS入門門檻摸屠。iOS10推出后谓罗,Xcode8也推出了更新,Xcode8下iOS版本最低適配已經(jīng)變?yōu)閕OS8.0季二,而且Swift版本也趨于穩(wěn)定檩咱,從某種意義上來說,Swift的時代正式開始胯舷,替代Objective-C也只是時間問題刻蚯。但是有些時候不得不使用Swift與Objective-C混編。

今天我們來看看兩者混編的時候需要注意的問題

混編無非兩種情況

  • 在Objective-C工程中使用Swift文件
  • 在Swift工程中使用Objective-C文件(這種情況居多)

混編中的兩個重要文件

1.橋接文件

橋接文件ProjectName-Bridging-Header.h需纳,在首次創(chuàng)建其他文件的時候芦倒,會自動生成。如果不小心刪除后不翩,也可以手動添加兵扬,不過名字必須是ProjectName-Bridging-Header.h頭文件(名稱組成:工程名-Bridging-Header.h),如果名字記不清也可以自己新建Header file后口蝠,在Targets-->Build Settings-->Swift Compiler - General-->Objective-C Bridging Header配置文件路徑器钟,這個文件主要是Swift使用OC類時使用。

2.Objective-C Generated Interface Header Name文件

這個文件是混編時妙蔗,系統(tǒng)生成的Swift文件對應(yīng)的Objective-C的頭文件傲霸,具體可以在Targets-->Build Settings-->Swift Compiler - General-->Objective-C Generated Interface Header Name進(jìn)行配置,默認(rèn)文件名是工程名-Swift.h眉反,一般不做改動昙啄。

Snip20170816_7.png
1.在Objective-C工程中使用Swift文件

在OC中調(diào)用的時候也OC 寫法一樣,加上 #import即可 會自動添加工程名.swift

OC中引入Swift文件.png
2.在Swift中使用OC文件

在橋接文件中引入需要的頭文件寸五,具體的使用梳凛,按照對用的Swift語法結(jié)構(gòu)來寫

Swift橋接文件引入OC文件.png
3.SubClass

對于自定義的類,Objective-C不能繼承來自Swift的類梳杏,但是Swift可以繼承來自O(shè)C的類

4.OC中的宏定義

在Swift中只能使用簡單的一些宏定義

Snip20170816_6.png
5.s使用OC中的block
OC中BLock定義.png
.m文件 block實現(xiàn).png
swift 中實現(xiàn)OC的Block.png

當(dāng)然還有很多我這里沒有總結(jié)出來韧拒,希望大家在遇到需要使用的時候有哪些本文章沒有涉及的也可以告訴我淹接,大家一起學(xué)習(xí),一起進(jìn)步叛溢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塑悼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子楷掉,更是在濱河造成了極大的恐慌厢蒜,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件靖诗,死亡現(xiàn)場離奇詭異郭怪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)刊橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颂鸿,“玉大人促绵,你說我怎么就攤上這事∽旆模” “怎么了败晴?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長栽渴。 經(jīng)常有香客問我尖坤,道長,這世上最難降的妖魔是什么闲擦? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任慢味,我火速辦了婚禮,結(jié)果婚禮上墅冷,老公的妹妹穿的比我還像新娘纯路。我一直安慰自己,他們只是感情好寞忿,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布驰唬。 她就那樣靜靜地躺著,像睡著了一般腔彰。 火紅的嫁衣襯著肌膚如雪叫编。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天霹抛,我揣著相機(jī)與錄音搓逾,去河邊找鬼。 笑死上炎,一個胖子當(dāng)著我的面吹牛恃逻,可吹牛的內(nèi)容都是我干的雏搂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼寇损,長吁一口氣:“原來是場噩夢啊……” “哼凸郑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起矛市,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤芙沥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浊吏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體而昨,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年找田,在試婚紗的時候發(fā)現(xiàn)自己被綠了歌憨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡墩衙,死狀恐怖务嫡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漆改,我是刑警寧澤心铃,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站挫剑,受9級特大地震影響去扣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樊破,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一愉棱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捶码,春花似錦羽氮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至祈纯,卻和暖如春令宿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腕窥。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工粒没, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人簇爆。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓癞松,卻偏偏與公主長得像爽撒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子响蓉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言: Swift語言出來后硕勿,可能新的項目直接使用Swift來開發(fā),但可能在過程中會遇到一些情況枫甲,某些已用OC寫好...
    瘋狂的電腦閱讀 2,289評論 0 9
  • 概述 利用runtime特性實現(xiàn)iOS項目的組件化開發(fā)源武,是由@casatwy大神提出來的,在他的博客中具體介紹...
    Mr杰杰閱讀 1,609評論 2 9
  • 前言 Swift已推出數(shù)年想幻,與Objective-C相比Swift的語言機(jī)制及使用簡易程度上更接地氣粱栖,大大降低了i...
    在這藍(lán)色天空下閱讀 319評論 0 2
  • swift與OC混編的總結(jié) 現(xiàn)在的swift開發(fā)多數(shù)會用到混編。swift和oc是通過橋接文件來實現(xiàn)的脏毯。無論是在o...
    玻璃瓶外的水閱讀 729評論 0 51
  • 西岳崢嶸何壯哉!黃河如絲天際來棺妓。黃河萬里觸山動嗅义,盤渦谷地秦地雷掀宋。榮光休氣紛五彩逃呼,千年一清圣人在帖世。巨靈咆哮擘兩...
    舒紅閱讀 569評論 0 2