Effective Objective-C 2.0 讀書筆記1

第一條:了解Objective-C的語(yǔ)言起源

消息結(jié)構(gòu)和函數(shù)調(diào)用的區(qū)別:使用消息結(jié)構(gòu)的語(yǔ)言,其運(yùn)行時(shí)所執(zhí)行的代碼由運(yùn)行環(huán)境來決定浩螺;使用函數(shù)調(diào)用的語(yǔ)言盯另,則由編譯器決定。如果范例代碼中調(diào)用的函數(shù)是多態(tài)的源哩,那么在運(yùn)行時(shí)就要按照“虛函數(shù)表”來查出到底應(yīng)該執(zhí)行那個(gè)函數(shù)實(shí)現(xiàn)鞋吉。而采用消息結(jié)構(gòu)的語(yǔ)言,不論是否多態(tài)励烦,總是在運(yùn)行時(shí)才會(huì)查找所要執(zhí)行的方法谓着。實(shí)際上,編譯器甚至不關(guān)心接收消息的對(duì)象是何種類型坛掠。接收消息的對(duì)象問題也要在運(yùn)行時(shí)處理赊锚,其過程叫做“動(dòng)態(tài)綁定”。

Objective-C的重要工作都由“運(yùn)行期組件”而非編譯器來完成屉栓。使用Objective-C的面向?qū)ο筇匦运璧娜繑?shù)據(jù)結(jié)構(gòu)及函數(shù)都在運(yùn)行期組件里面舷蒲。

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

除非確有必要,否則不要引入頭文件友多。一般來說牲平,應(yīng)在某個(gè)類的頭文件中使用前項(xiàng)聲明來提及別的類,并在實(shí)現(xiàn)文件中引入那些類的頭文件夷陋。這樣做可以盡量降低類的耦合欠拾。

有時(shí)無法使用前項(xiàng)聲明胰锌,比如要聲明某個(gè)類遵循一項(xiàng)協(xié)議骗绕。這種情況下,盡量把“該類遵循某項(xiàng)協(xié)議”的這條聲明移至“class-continuation 分類”中资昧。如果不行的話酬土,就把協(xié)議單獨(dú)放在一個(gè)頭文件中。然后將其引入格带。

第三條:多用字面量語(yǔ)法撤缴,少用與之等價(jià)的方法

NSString *something = @"xxxx";

如果不使用這種語(yǔ)法的話,就要以常見的alloc init的方法來創(chuàng)建并分配初始化NSString對(duì)象叽唱。

字面數(shù)值:

NSNumber *someNumber = @1;

字面數(shù)組:

一般這樣來創(chuàng)建數(shù)組:

NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dog", @"mouse", @"badger", nil];

使用字面量語(yǔ)法來創(chuàng)建則是:

NSArray *animals = @[@"cat", @"dog", @"mouse", @"badger"];

字面量字典

NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:

@"Matt", @"firstName",

@"Galloway", @"lastName",

[NSNumber numberWithInt28], @"age", nil];

字面語(yǔ)法:

NSDictionary *personData = @{@"firstName" : @"Matt",

@"lastName" : @"Galloway",

@"age": @28};

按照特定鍵訪問其值的傳統(tǒng)做法是:

NSString *lastName = [personData objectForKey@"lastName"];

與之等效的字面量語(yǔ)法則是:

NSString *lastName = personData[@"lastName"]

要點(diǎn):

1)應(yīng)該使用字面量語(yǔ)法來創(chuàng)建字符串,數(shù)值屈呕,數(shù)組,字典

2)應(yīng)該通過取下標(biāo)操作來訪問數(shù)組下標(biāo)或字典中的鍵所對(duì)應(yīng)的元素

3)用字面量語(yǔ)法創(chuàng)建數(shù)組或字典時(shí)棺亭,若值中有nil, 則會(huì)拋出異常虎眨。因此,務(wù)必確保值里不含nil.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末镶摘,一起剝皮案震驚了整個(gè)濱河市嗽桩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凄敢,老刑警劉巖碌冶,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異涝缝,居然都是意外死亡扑庞,警方通過查閱死者的電腦和手機(jī)譬重,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罐氨,“玉大人害幅,你說我怎么就攤上這事∑裾眩” “怎么了以现?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)约啊。 經(jīng)常有香客問我邑遏,道長(zhǎng),這世上最難降的妖魔是什么恰矩? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任记盒,我火速辦了婚禮,結(jié)果婚禮上外傅,老公的妹妹穿的比我還像新娘纪吮。我一直安慰自己,他們只是感情好萎胰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布碾盟。 她就那樣靜靜地躺著,像睡著了一般技竟。 火紅的嫁衣襯著肌膚如雪冰肴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天榔组,我揣著相機(jī)與錄音熙尉,去河邊找鬼。 笑死搓扯,一個(gè)胖子當(dāng)著我的面吹牛检痰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锨推,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼铅歼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了爱态?” 一聲冷哼從身側(cè)響起谭贪,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锦担,沒想到半個(gè)月后俭识,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洞渔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年套媚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缚态。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡堤瘤,死狀恐怖玫芦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情本辐,我是刑警寧澤桥帆,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站慎皱,受9級(jí)特大地震影響老虫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茫多,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一祈匙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧天揖,春花似錦夺欲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至万细,卻和暖如春扑眉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赖钞。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留聘裁,地道東北人雪营。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像衡便,于是被迫代替她去往敵國(guó)和親献起。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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