Effective Objective-C 2.0 第一篇

最近在看Effective Objective-C 2.0 這本書,里面有52個鮮為人知和容易被忽略的特性與陷阱,包含了大量實用范例的代碼,為編寫易于理解,便于維護,易于擴展和高效的Objective-C應(yīng)用提供了解決方案

隨著我看書的速度來跟新我的文章,都是自己的理解,如果有理解不到位的地方,大家要多多指出了,一起學(xué)習(xí),懂得分享,才能進步.

第一條 了解起源

Objective-C是利用runtime機制檢查對象類型,接受消息之后執(zhí)行什么是有編譯器和運行期的環(huán)境決定的.通常學(xué)習(xí)OC都會學(xué)習(xí)C語言的核心理念,包括指針,內(nèi)存管理等等.第一條就先說這么多.

第二條 類的頭文件中盡量少引入其他頭文件

在引入類的頭文件的時候,用#import引入,這個類里需要其他類的屬性的時候就要引入該類的頭文件.然后定義引入頭文件的屬性.但是有時候我們根本不需要知道這個類的全部細節(jié),只需要知道有這么個類就行.這樣就可以選著@class加上類名來實現(xiàn),這樣做叫做向前聲明.也可以避免兩個類互相引用的問題.這么做可以降低類之間的耦合.

筆者推薦在項目中如果要用到協(xié)議去做一些事情,不妨把協(xié)議寫在一個單獨的.h里面,這樣做在引入?yún)f(xié)議的時候就可以引入頭文件就ok了,簡單明了.還有在寫項目的時候,有許多需要引入的頭文件,一些都要引入的文件,最好的方式就是寫在PCH.關(guān)于PCH怎么創(chuàng)建,在我的其他文章中有提到,推薦去看一看.

第三章 多用字面量,少用等價方法

這里簡單的舉個例子吧

便利構(gòu)造器方法創(chuàng)建

NSNumber*num = [NSNumbernumberWithInt:1];

字面量:

NSNumber*num =@1;

可以清楚的看到,字面量更加精簡,當(dāng)然不僅僅是這樣.這里提出一點是在NSDictionary,NSArray字面量創(chuàng)建的話如果數(shù)據(jù)中有nil會報錯.要注意.

對了,在書中還有一點是說要通過下標來對數(shù)組進行訪問或者是字典中的key值.這么做的意義也是是代碼簡潔.易于理解.

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

筆者在做開發(fā)的時候,用#define去定義一個字符串會定義一個域名,方便修改,然后在開發(fā)過程中,如果一直用#define來定義的情況,預(yù)處理會把程序中所有的宏做替換,那么引入這個.h頭文件的所有宏都會被替換掉.書中推薦使用

static const 名字 = 變量 當(dāng)然這里有對命名的規(guī)范問題.之后會介紹

那么問題來了,我們要在什么地方去定義常量呢.如果不想公開這個常量,可以再實現(xiàn)文件中(當(dāng)然是使用常量的實現(xiàn)文件中).其中之一如果要修改變量會報錯.在需要的時候使用時做好的.如果想公開這個常量,可以放在全局符號表(頭文件中)中,方式有所不同,

extern NSSting *const 變量名

extern關(guān)鍵字在頭文件中,編譯器就會知道這個是常量了.

總而言之,筆者認為這個說的意思就是使用預(yù)處理指令的時候,會在程序的任何地方修改常量,這樣做的后果就是常量在每個地方的值不一致.而且不包含類型信息.但是用類型常量就確保常量的值一致是一定的.

第五章 多用枚舉去做一些標識

枚舉類型是在開發(fā)中經(jīng)常用到的.大概要注意著幾點.

1,用枚舉類型定義的名字要清晰易懂.

2,可以通過按位查找枚舉類型

3,用底層數(shù)據(jù)類型定義枚舉,

4,在switch語句中實現(xiàn)處理枚舉類型的時候不要實現(xiàn)default分支,如果加入新枚舉,編譯器會提示switch語句未處理所有類型

今天就這么多了..書還在繼續(xù)看,寫出來也是加深印象的過程.有什么理解不到位的地方,希望看到文章的童鞋們能夠指正一下.

技術(shù)博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阀圾,一起剝皮案震驚了整個濱河市哪廓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌初烘,老刑警劉巖涡真,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肾筐,居然都是意外死亡哆料,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門吗铐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來东亦,“玉大人,你說我怎么就攤上這事唬渗〉湔螅” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵镊逝,是天一觀的道長壮啊。 經(jīng)常有香客問我,道長蹋半,這世上最難降的妖魔是什么他巨? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮减江,結(jié)果婚禮上染突,老公的妹妹穿的比我還像新娘。我一直安慰自己辈灼,他們只是感情好份企,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巡莹,像睡著了一般司志。 火紅的嫁衣襯著肌膚如雪甜紫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天骂远,我揣著相機與錄音囚霸,去河邊找鬼。 笑死激才,一個胖子當(dāng)著我的面吹牛拓型,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘸恼,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼劣挫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了东帅?” 一聲冷哼從身側(cè)響起压固,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎靠闭,沒想到半個月后帐我,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡愧膀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年焚刚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扇调。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡矿咕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狼钮,到底是詐尸還是另有隱情碳柱,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布熬芜,位于F島的核電站莲镣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涎拉。R本人自食惡果不足惜瑞侮,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鼓拧。 院中可真熱鬧半火,春花似錦、人聲如沸季俩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酌住。三九已至店归,卻和暖如春阎抒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背消痛。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工且叁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秩伞。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓谴古,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稠歉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

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