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