這些建議出自《Effective Objective-C 2.0:編寫高質(zhì)量iOS與OS X代碼的52個有效方法 [Effective Objective-C 2.0][英] Matt Galloway 著;愛飛翔 譯》,有興趣的同學(xué)可以去看看。
熟悉Objective-C
1. 了解 Objective-C 語言的起源;
2. 在類的頭文件中盡量少引入其他頭文件;
3. 多用字面量語法,少用與之等價的方法;
4. 多用類型常量,少用 #define 預(yù)處理指令;
5. 用枚舉表示狀態(tài)、選項、狀態(tài)碼;
對象、消息、運行期
6. 理解“屬性”這一概念;
7. 在對象內(nèi)部盡量直接訪問示例變量;
8. 理解“對象等同性”這一概念;
9. 以“類族模式”隱藏實現(xiàn)細節(jié);
10. 在既有類中使用關(guān)聯(lián)對象存放自定義數(shù)據(jù);
11. 理解 objc_msgSend 的作用;
12. 理解消息轉(zhuǎn)發(fā)機制;
13. 用“方法調(diào)配技術(shù)”調(diào)試“黑盒方法”;
14. 理解“類對象”的用意;
接口與API設(shè)計
15. 用前綴避免命名空間沖突;
16. 提供全能初始化方法;
17. 實現(xiàn) description 方法;
18. 盡量使用不可變對象;
19. 使用清晰而協(xié)調(diào)的命名方式;
20. 為私有方法加前綴;
21. 理解 Objective-C 錯誤模型;
22. 理解 NSCopying 協(xié)議;
協(xié)議與分類
23. 通過委托與數(shù)據(jù)源協(xié)議進行對象間通信;
24. 將類的實現(xiàn)代碼分散到便于管理的數(shù)個分類之中;
25. 總是為第三方類的分類名稱加前綴
26. 勿在分類中聲明屬性;
27. 使用 “class-continuation 分類” 隱藏實現(xiàn)細節(jié);
28. 通過協(xié)議提供匿名對象;
內(nèi)存管理
29. 理解引用計數(shù);
30. 以 ARC 簡化引用計數(shù);
31. 在 dealloc 方法中只釋放引用并解除監(jiān)聽;
32. 編寫“異常安全代碼”時留意內(nèi)存管理問題;
33. 以弱引用避免保留環(huán);
34. 以“自動釋放池塊”降低內(nèi)存峰值;
35. 用“僵尸對象”調(diào)試內(nèi)存管理問題;
36. 不要使用 retainCount ;
塊與大中樞派發(fā)
37. 理解“塊”這一概念;
38. 為常用的塊類型創(chuàng)建 typedef ;
39. 用handler塊降低代碼分散程度;
40. 用塊引用其所屬對象時不要出現(xiàn)保留環(huán);
41. 多用派發(fā)隊列,少用同步鎖;
42. 多用 GCD ,少用 preformSelector 系列方法;
43. 掌握 GCD 及操作隊列的使用時機;
44. 通過 Dispatch Group 機制,根據(jù)系統(tǒng)資源狀況來執(zhí)行任務(wù);
45. 使用 dispatch_once 來執(zhí)行只需運行一次的線程安全代碼;
46. 不要使用 dispatch_get_current_queue ;
系統(tǒng)框架
47. 熟悉系統(tǒng)框架;
48. 多用塊枚舉,少用 for 循環(huán);
49. 對自定義其內(nèi)存管理語義的 collection 使用無縫橋接;
50. 構(gòu)建緩存時選用 NSCache 而非 NSDictionary ;
51. 精簡 initialize 與 load 的實現(xiàn)代碼;
52. 別忘了 NSTimer 會保留其目標(biāo)對象。
最后給一下此書電子版下載地址,請支持正版圖書!