《編寫高質量iOS與OS X代碼的52個有效方法》之第一章要點

第一章 熟悉Objective-C
第1條:了解Objective-C語言的起源
要點:
1、Objective-C為C語言添加了面向對象特性,是其超集。Objective-C使用動態(tài)綁定的消息結構,也就是說,在運行時才會檢查對象類型。接收一條消息之后,究竟應執(zhí)行何種代碼,由運行期環(huán)境而非編譯器來決定。
2、理解C 語言的核心概念有助于寫好Objective-C程序。尤其要掌握內存模型與指針。

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

第3條:多用字面量語法,少用與之等價的方法
要點:
1、應該使用字面量語法來創(chuàng)建字符串、數(shù)值、數(shù)組、字典。與創(chuàng)建此類對象的常規(guī)方法相比,這么做更加簡單扼要。
2、應該通過取下標操作來訪問數(shù)組下標或字典中的鍵所對應的元素。
3、用字面量語法創(chuàng)建數(shù)組或字典時,若值中有nil,則會拋出異常。因此,務必確保值里不含nil。

第4條:多用類型常量,少用#define預處理指令
要點:
1、不要用預處理命令定義常量。這樣定義出來的常量不含類型信息,編譯器只是會在編譯前據此執(zhí)行查找與替換操作。即使有人重新定義了常量值,編譯器也不會產生警告信息,這將導致應用程序中的常量值不一致。
2、在實現(xiàn)文件中使用static const來定義“只在編譯單元內可見的常量”。由于此類常量不在全局符號表中,所以無須為其名稱加前綴。
3、在頭文件中使用extern來聲明全局常量,并在相關實現(xiàn)文件中定義其值。這種常量要出現(xiàn)在全局符號表中,所以其名稱應加以區(qū)隔,通常與之相關的類名做前綴。

第5條:用枚舉表示狀態(tài)、選項、狀態(tài)碼
要點:
1、應該用枚舉來表示狀態(tài)機的狀態(tài)、傳遞給方法的選項以及狀態(tài)碼等值,給這些值起個易懂的名字。
2、如果把傳遞給某個方法的選項表示為枚舉類型,而多個選項又可同時使用,那么就將各選項值定義為2的冪,以便通過按位或操作將其組合起來。
3、用NS_ENUM與NS_OPTIONS宏來定義枚舉類型,并指明其底層數(shù)據類型。這樣做可以確保枚舉是用開發(fā)者所選的底層數(shù)據類型實現(xiàn)出來的,而不會采用編譯器所選的類型。
4、在處理枚舉類型的switch語句中不要實現(xiàn)default分支。這樣的話,加入新枚舉之后,編譯器就會提示開發(fā)者:switch語句并未處理所有枚舉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容