熟悉Objective-C

<a >Effective Objective C 2.0:編寫高質(zhì)量iOS與OS X代碼的52個(gè)有效方法</a>

第 2 條: 在類的頭文件中盡量少引入其它頭文件###

要點(diǎn):####

  1. 除非確有必要,否則不要引入頭文件.一般來說,應(yīng)在某個(gè)類的頭文件中使用向前聲明來提及別的類,并在實(shí)現(xiàn)文件中引入那些類的頭文件.這樣做可以盡量降低類之間的耦合
  2. 有時(shí)無法使用向前聲明,比如要聲明某個(gè)類遵循一項(xiàng)協(xié)議.這種情況下,盡量把"該類遵循某協(xié)議"的這條聲明移到"class-continuation分類"中.如果不行的話,就把協(xié)議單獨(dú)放在一個(gè)頭文件中,然后將其引入.

第 3 條: 多用字面量語法,少用與之等價(jià)的方法

要點(diǎn):####

  1. 應(yīng)該使用字面量語法來創(chuàng)建字符串,數(shù)值,數(shù)組,字典.與創(chuàng)建此類對(duì)象的常規(guī)方法相比,這么做更加簡明扼要.
  2. 應(yīng)該通過取下標(biāo)操作來訪問數(shù)組下標(biāo)或字典中的鍵所對(duì)應(yīng)的元素.
  3. 用字面量語法創(chuàng)建數(shù)組或字典時(shí), 若值中有nil,則會(huì)拋出異常.因此,務(wù)必確保值里不含nil.

第 4 條: 多用類型常量,少用#define預(yù)處理指令###

要點(diǎn):####

  1. 不要用預(yù)處理指令定義常量.這樣定義出來的常量不含類型信息,編譯器只是會(huì)在編譯前據(jù)些執(zhí)行查找與替換操作.即使有人重新定義了常量值,編譯器也不會(huì)產(chǎn)生警告信息,這將導(dǎo)致應(yīng)用程序中的常量值不一致.
  2. 在實(shí)現(xiàn)文件中使用static const 來定義"只在編譯單元內(nèi)可見的常量".由于此類常量不在全局符號(hào)表中,所以無須為其名稱加前綴.
  3. 在頭文件中使用extern來聲明全局常量,并在想著實(shí)現(xiàn)文件中定義其值.這種常量要出現(xiàn)在全局符號(hào)表中,所以其名稱應(yīng)加區(qū)隔,通常用與之相關(guān)的類名做前綴.

第 5 條: 用枚舉表示狀態(tài),選項(xiàng),狀態(tài)碼###

要點(diǎn):####

  1. 應(yīng)該用枚舉來表示狀態(tài)機(jī)制狀態(tài),傳遞給方法的選項(xiàng)以及狀態(tài)碼等值,給這些值起個(gè)易懂的名字.
  2. 如果把傳遞給某個(gè)方法的選項(xiàng)表示為枚舉類型,而多個(gè)選項(xiàng)又可同時(shí)使用,那么就將各選項(xiàng)值定義為2的冪,以便通過按位或操作將其組合起來.
  3. 用NS_ENUM 與 NS_OPTIONS 宏來定義枚舉類型,并指明其底層數(shù)據(jù)類型.這樣做可以確保枚舉是用開發(fā)者所選的底層數(shù)據(jù)類型實(shí)現(xiàn)出來的,而不會(huì)采用編譯器所選的類型.
  4. 在處理枚舉類型的switch語句中不要實(shí)現(xiàn)default分支.這樣的話,加入新枚舉之后,編譯器就會(huì)提示開發(fā)者:switch語句并未處理所有枚舉.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子猜惋,更是在濱河造成了極大的恐慌聊替,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)葵腹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屿岂,“玉大人践宴,你說我怎么就攤上這事∫常” “怎么了阻肩?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長运授。 經(jīng)常有香客問我烤惊,道長乔煞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任柒室,我火速辦了婚禮渡贾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雄右。我一直安慰自己空骚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布不脯。 她就那樣靜靜地躺著府怯,像睡著了一般刻诊。 火紅的嫁衣襯著肌膚如雪防楷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天则涯,我揣著相機(jī)與錄音复局,去河邊找鬼。 笑死粟判,一個(gè)胖子當(dāng)著我的面吹牛亿昏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播档礁,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼角钩,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了呻澜?” 一聲冷哼從身側(cè)響起递礼,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羹幸,沒想到半個(gè)月后脊髓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栅受,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年将硝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屏镊。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡依疼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出而芥,到底是詐尸還是另有隱情涛贯,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布蔚出,位于F島的核電站弟翘,受9級(jí)特大地震影響虫腋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稀余,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一悦冀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧睛琳,春花似錦盒蟆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辟癌,卻和暖如春寒屯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黍少。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國打工寡夹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厂置。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓菩掏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昵济。 傳聞我的和親對(duì)象是個(gè)殘疾皇子智绸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

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