iOS之Swift和OC的區(qū)別

1.base class?

? ? Swift中可以定義不繼承于其它類的類擒悬,稱之為基類(base class),而OC的類都是繼承自NSObject。

2.switch

? ? 在OC中的Switch:

? ? ? ? 不能判斷對象類型, 只能判斷基本類型中的整數(shù);可以穿透;default位置可以隨便放。

? ? 在Swift中的Switch:

? ? ? ? 可以判斷對象類型只损,支持對象類型、元組、區(qū)間跃惫、double類型等等;默認(rèn)不穿透艾栋,可以寫fallthough穿透爆存;可以不寫break,如果寫了default蝗砾,default得放在最后先较。

3.final關(guān)鍵字

????Swift中的final修飾符可以防止類被繼承,還可以防止子類重寫父類的屬性悼粮、方法以及下標(biāo)闲勺。

4.guard、inout

? ? Swift中扣猫,guard關(guān)鍵字只能作用在函數(shù)中菜循,guard關(guān)鍵字必須和else同時出現(xiàn),guard關(guān)鍵字只有在條件為false的時候會走else語句申尤,反之執(zhí)行后邊語句癌幕。

? ? Swift中,inout是修飾函數(shù)參數(shù)類型昧穿,表示該參數(shù)在函數(shù)內(nèi)修改后(即函數(shù)返回后)勺远,其值為修改后的值。

5.運算符重載

? ? OC是不支持重載的时鸵,Swift是支持重載的胶逢。

6.命名空間

? ? OC沒有命名空間,但是在為了區(qū)分在不同框架中可能會使用相同名字的變量沖突的情況饰潜,OC使用前綴來區(qū)別初坠。

? ? Swift有命名空間,默認(rèn)就是項目名稱囊拜,同一個命名空間全局共享某筐,這也是Swift不需要在import頭文件。

7.swift類型安全冠跷,oc更靈活

? ??類型安全語言需要代碼里值的類型非常明確南誊。

8.可選類型

? ??Swift引入了可選項類型,用于處理變量值不存在的情況蜜托。Optionals類似于OC中指向nil的指針抄囚,但是適用于所有數(shù)據(jù)類型,而非僅僅局限于類橄务,Optionals相比于OC中的nil指針幔托,更加安全和簡明。

9.字符串插值、String.Index

????OC:[NSStringstringWithFormat:@"%d",10];

????Swift: "\(10)"

10.OC是動態(tài)重挑、Swift是靜態(tài)(函數(shù)內(nèi)聯(lián))

? ??Swift 編譯時就確定了調(diào)用的方法嗓化,OC是調(diào)用之前通過虛函數(shù)表來確定調(diào)用的方法。

11.泛型

? ??泛型是用來使代碼能安全工作谬哀,Swift中的范型可以在函數(shù)數(shù)據(jù)和普通數(shù)據(jù)類型中使用刺覆,例如類、結(jié)構(gòu)體或枚舉史煎。范型可以解決代碼復(fù)用的問題谦屑。

12.訪問權(quán)限

? ??Swift又新增了兩種訪問控制權(quán)限?fileprivate和?open。Swift中訪問權(quán)限由大到小依次為:open > public > internal(默認(rèn))> fileprivate >private篇梭。

? ? ? ? open:可以在任何地方訪問氢橙,包括override和繼承。

????????public:可以在任何地方訪問恬偷,但其他module中不可以被override和繼承悍手,而在本module內(nèi)可以被override和繼承。

????????internal:修飾的屬性或方法在整個模塊內(nèi)都可以訪問,系統(tǒng)默認(rèn)喉磁。

????????fileprivate:在當(dāng)前文件內(nèi)可以被訪問谓苟。

????????private:在當(dāng)前類中能被訪問。??

13.enum

????Swift 的枚舉成員在被創(chuàng)建時本身就是完備的值协怒,這些值的類型是已經(jīng)明確定義好的 Direction 類型. 不會像 Objective-C 一樣被賦予一個默認(rèn)的整型值涝焙。

14.swift 反射機制

????所謂反射就是可以動態(tài)獲取類型、成員信息孕暇,同時在運行時(而非編譯時)可以動態(tài)調(diào)用任意方法仑撞、屬性等行為的特性。反射最重要的目的妖滔,就是為了解耦隧哮。

在Swift中并不提倡使用Runtime,而是像其他語言一樣使用反射(Reflect)座舍。Swift的反射機制是基于一個叫?Mirror?的?struct?來實現(xiàn)的沮翔。

Swift其他功能:

1.范圍運算符:

????a...b 表示 [a,b] 包括a和b 。 (如3...5 ?就是范圍取3曲秉,4采蚀,5)

????a..<b 表示 [a,b) 包括a,不包括b 承二。?(如3..<5 ?就是范圍取3榆鼠,4)

????常見的如for循環(huán):for i in 0...9{}

2.獨有的元組類型

????元組(tuples)把多個值組合成一個復(fù)合值。元組內(nèi)的值可以使任意類型,并不要求是相同類型亥鸠。

? ?eg: var value = (Int,String) = (x:15,y:"abc")? ??

3.swift中使用let定義常量,var定義變量

? ??使用常量妆够,更加安全识啦,不能夠被修改,在需要對對象進行修改的時候只能用var修飾神妹。

4.if let 颓哮、 guard let?

? ??縮減代碼量,安全處理數(shù)據(jù)邏輯鸵荠,作用是解包题翻。

5.defer?

????defer?block 里的代碼會在函數(shù) return 之前執(zhí)行,無論函數(shù)是從哪個分支 return 的腰鬼,還是有 throw,還是自然而然走到最后一行塑荒。? ??

6.高階函數(shù)

? ??高階函數(shù)僅僅只是一個函數(shù)熄赡,其可以接收函數(shù)作為參數(shù),或者返回一個函數(shù)來操作其他函數(shù)齿税。Swift的集合類型中就有這些高階函數(shù):Map, FlatMap, Filter, 和Reduce彼硫。

Swift優(yōu)點:

1.Swift容易閱讀,語法和文件結(jié)構(gòu)簡易化凌箕。

2.Swift更易于維護拧篮,文件分離后結(jié)構(gòu)更清晰。

3.Swift更加安全牵舱,它是類型安全的語言串绩。

4.Swift代碼更少,簡潔的語法芜壁,可以省去大量冗余代碼礁凡。

5.Swift速度更快,運算性能更高慧妄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顷牌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子塞淹,更是在濱河造成了極大的恐慌窟蓝,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饱普,死亡現(xiàn)場離奇詭異运挫,居然都是意外死亡,警方通過查閱死者的電腦和手機费彼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門滑臊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人箍铲,你說我怎么就攤上這事雇卷。” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵关划,是天一觀的道長小染。 經(jīng)常有香客問我,道長贮折,這世上最難降的妖魔是什么裤翩? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮调榄,結(jié)果婚禮上踊赠,老公的妹妹穿的比我還像新娘。我一直安慰自己每庆,他們只是感情好筐带,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缤灵,像睡著了一般伦籍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腮出,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天帖鸦,我揣著相機與錄音,去河邊找鬼胚嘲。 笑死作儿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慢逾。 我是一名探鬼主播立倍,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侣滩!你這毒婦竟也來了口注?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤君珠,失蹤者是張志新(化名)和其女友劉穎寝志,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體策添,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡材部,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年舆逃,在試婚紗的時候發(fā)現(xiàn)自己被綠了悼吱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡奋渔,死狀恐怖浸颓,靈堂內(nèi)的尸體忽然破棺而出物臂,到底是詐尸還是另有隱情旺拉,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布棵磷,位于F島的核電站蛾狗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏仪媒。R本人自食惡果不足惜沉桌,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望算吩。 院中可真熱鬧留凭,春花似錦、人聲如沸偎巢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翠订,卻和暖如春巢音,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尽超。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工官撼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人似谁。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓傲绣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巩踏。 傳聞我的和親對象是個殘疾皇子秃诵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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