該內(nèi)容摘自《Effective Objective-C 2.0? 編寫(xiě)高質(zhì)量iOS與OS X代碼的52個(gè)有效方法.pdf》,作為讀書(shū)的筆記。
1.在類(lèi)的頭文件中盡量少引入其他的頭文件
2、多用字面量,少用與之等價(jià)的方法
3、多用類(lèi)型常量,少用#define預(yù)處理指令
例如:
將#define ANIMTION_DURATION= 3.0替換成
static const NSTimeIntrval KAnimtionDuration = 3;
若不打算公開(kāi)某個(gè)常量就應(yīng)該將該常量定義在類(lèi)的實(shí)現(xiàn)文件中
如果想對(duì)外公開(kāi)某個(gè)常量,比如發(fā)出某個(gè)通知,但外界不用關(guān)心真正通知的名稱(chēng),則應(yīng)該這樣寫(xiě):
在頭文件中:
extern NSString *const NotificationName;
在實(shí)現(xiàn)文件中:
NSString *const NotificationName = @"VAULE";
4、使用枚舉表示狀態(tài)和選擇等。
5、理解“屬性”的概念
采用屬性的方式定義實(shí)例變量,系統(tǒng)會(huì)自動(dòng)在編譯的時(shí)期給該類(lèi)添加上屬性所對(duì)應(yīng)的實(shí)例變量,并且在變量名前加上"_",還會(huì)生成setter和戈塔特人方法;
可以在實(shí)現(xiàn)文件中通過(guò)@synthesize方法重新指定實(shí)例變量的名字。
也可以使用@dynamic關(guān)鍵字,讓編譯器不用創(chuàng)建屬性需要的實(shí)例變量,和創(chuàng)建存取方法,
屬性的特性:
原子性,讀寫(xiě)權(quán)限,內(nèi)存管理語(yǔ)義(strong,weak,assgin,retain,copy)
方法名(gtter = <name> setter = <name>)
6、在對(duì)象內(nèi)部盡量直接訪(fǎng)問(wèn)實(shí)例變量
7.對(duì)象等同性
8、coco中的族類(lèi)
9、在既有的類(lèi)里采用關(guān)聯(lián)對(duì)象存放自定義的數(shù)據(jù)