第 3 章 接口與 API 設(shè)計(jì)
第 15 條:用前綴避免命名空間沖突
Apple 宣稱其保留使用所有“兩字母前綴”的權(quán)利,所以你自己選用的前綴應(yīng)該是三個(gè)字母的爱榔。
第 16 條:提供“全能初始化方法”
可以為對象提供必要信息以便其完成工作的初始化方法叫做“全能初始化方法”担汤。
第 17 條:實(shí)現(xiàn) description 方法
第 18 條:盡量使用不可變對象
盡量創(chuàng)建不可變對象
若某屬性僅可于對象內(nèi)部修改,則在“class-continuation 分類”中將其由 readonly 屬性擴(kuò)展為 readwrite 屬性
不要把可變的 collection 作為屬性公開得湘,而應(yīng)提供相關(guān)方法选浑,以此修改對象中得可變 collection.
第 19 條:使用清晰而協(xié)調(diào)的命名方式
第 20 條:為私有方法名加前綴
- (void)p_privateMethod { }
- 給私有方法的名稱加上前綴蓝厌,這樣可以很容易地將其同公共方法區(qū)分開。
- 不要單用一個(gè)下劃線做私有方法的前綴鲜侥,因?yàn)檫@種做法是預(yù)留給蘋果公司用的褂始。
第 21 條:理解 Objective-C 錯(cuò)誤模型
- 只有發(fā)生了可使整個(gè)應(yīng)用程序崩潰的嚴(yán)重錯(cuò)誤時(shí),才應(yīng)使用異常描函。
- 在錯(cuò)誤不那么嚴(yán)重的情況下崎苗,可以指派“委托方法”來處理錯(cuò)誤,可以把錯(cuò)誤放在NSError 對象里舀寓,經(jīng)由“輸出參數(shù)”返回給調(diào)用者胆数。
第 22 條:理解 NSCopying 協(xié)議
- (id)copyWithZone:(NSZone*)zone
- 若想令自己所寫的對象具有拷貝功能,則需實(shí)現(xiàn) NSCopying 協(xié)議互墓。
- 如果自定義的對象分為可變版本與不可變版本必尼,那么就要同時(shí)實(shí)現(xiàn) NSCopying 與 NSMutableCopying 協(xié)議。
- 復(fù)制對象時(shí)需決定采用淺拷貝還是深拷貝篡撵,一般情況下應(yīng)該盡量執(zhí)行淺拷貝判莉。
- 如果你所寫的對象需要深拷貝,那么可考慮新增一個(gè)專門執(zhí)行深拷貝的方法育谬。