編寫高質(zhì)量iOS與OS X代碼的52個有效方法(一)

這本書沒有OC語言的基礎(chǔ)知識席吴,講的是如何高效運用這門語言

第一章 熟悉OC

1婆誓、什么是OC

·OC是為C語言添加了面向?qū)ο筇匦酝耍荂的超集羹饰。OC使用動態(tài)綁定的消息結(jié)構(gòu)握爷,也就是說,在運行時才會檢查對象類型严里。接收一條消息之后,究竟執(zhí)行什么代碼追城,由運行時環(huán)境而非編譯器來決定

2刹碾、在類的頭文件中盡量少引入其他頭文件

·除非一定需要,否則不要引入頭文件座柱。一般來說迷帜,在某個類的頭文件中使用向前聲明來提及別的類,并在實現(xiàn)文件中引入哪些類的頭文件色洞,這樣做可以盡量降低類與類之前的耦合戏锹。

3、多用字面量語法火诸,少用與之等價的方法

使用字面量語法锦针,可以縮減源代碼長度,使代碼更為易讀

NSNumber *someNumber = [NSNumber numberWithInt:1];

使用字面量能令代碼更為整潔置蜀,沒有多余的語法成分

NSNumber *someNumber = @1奈搜;

字面量數(shù)組
我們先看一下不使用字面量語法創(chuàng)建數(shù)組的方式:

NSArray *array = [NSArray arrayWithObjects:@"object1", @"object2", @"object3", @"object4", nil];

使用字面量語法創(chuàng)建的數(shù)組

NSArray *array = @[@"object1", @"object2" , @"object3", @"object4"];

不僅簡單,而且還利于操作數(shù)組

普通語法:
[array objectAtIndex:1]
字面量語法:
array[1];

4盯荤、多使用常量類型馋吗,少用#define預(yù)處理指令

不要用預(yù)處理指令定義常量。這樣定義出來的常量不含類型信息秋秤,編譯器只是會在編譯前據(jù)此執(zhí)行查找與替換操作宏粤。即使有人重新定義了常量值,編譯器也不會產(chǎn)生警告信息灼卢,這將導(dǎo)致應(yīng)用程序中的常量值不一致绍哎。
在實現(xiàn)文件中使用static const來定義只在編譯單元內(nèi)可見的常量。由于此類常量不在全局符號表中芥玉,所以無需為其名稱加前綴蛇摸。
在頭文件中使用extern來聲明全局常量,并在相關(guān)實現(xiàn)文件中定義其值灿巧。這種常量要出現(xiàn)在全局符號表中赶袄,所以其名稱要加以區(qū)隔,通常用與之相關(guān)的類名做前綴抠藕。

5饿肺、用枚舉表示狀態(tài)、選項盾似、狀態(tài)碼

應(yīng)該用枚舉來表示狀態(tài)機的狀態(tài)敬辣、傳遞給方法的選項遺跡狀態(tài)碼等值雪标,給這些值起個易懂的名字。
如果把傳遞給某個方法的選項表示為枚舉型溉跃,而多個選項又可同時使用村刨,那么就將各選項值定義為2的冪,以便通過按位或者操作將其組合起來撰茎。
用NS_ENUM與NS_OPTIONS宏來定義枚舉類型嵌牺,并指明其底層數(shù)據(jù)類型。這樣做可以確保枚舉是用開發(fā)者所選的底層數(shù)據(jù)類型實現(xiàn)出來的龄糊,而不會采用編譯器所選的類型逆粹。
在處理枚舉類型的switch語句中不要實現(xiàn)default分支。這樣的話炫惩,加入新枚舉之后僻弹,編譯器就會提示開發(fā)者:switch語句并未處理所有的枚舉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末他嚷,一起剝皮案震驚了整個濱河市蹋绽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筋蓖,老刑警劉巖蟋字,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扭勉,居然都是意外死亡鹊奖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門涂炎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忠聚,“玉大人,你說我怎么就攤上這事唱捣×襟埃” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵震缭,是天一觀的道長赂毯。 經(jīng)常有香客問我,道長拣宰,這世上最難降的妖魔是什么党涕? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮巡社,結(jié)果婚禮上膛堤,老公的妹妹穿的比我還像新娘。我一直安慰自己晌该,他們只是感情好肥荔,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布绿渣。 她就那樣靜靜地躺著,像睡著了一般燕耿。 火紅的嫁衣襯著肌膚如雪中符。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天誉帅,我揣著相機與錄音舟茶,去河邊找鬼。 笑死堵第,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隧出。 我是一名探鬼主播踏志,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胀瞪!你這毒婦竟也來了针余?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤凄诞,失蹤者是張志新(化名)和其女友劉穎圆雁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帆谍,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡伪朽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了汛蝙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烈涮。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窖剑,靈堂內(nèi)的尸體忽然破棺而出坚洽,到底是詐尸還是另有隱情,我是刑警寧澤西土,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布讶舰,位于F島的核電站,受9級特大地震影響需了,放射性物質(zhì)發(fā)生泄漏跳昼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一肋乍、第九天 我趴在偏房一處隱蔽的房頂上張望庐舟。 院中可真熱鬧,春花似錦住拭、人聲如沸挪略。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杠娱。三九已至挽牢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摊求,已是汗流浹背禽拔。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留室叉,地道東北人睹栖。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像茧痕,于是被迫代替她去往敵國和親野来。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

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