編寫高質(zhì)量iOS代碼的52個建議

這些建議出自《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)對象。

最后給一下此書電子版下載地址,請支持正版圖書!

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容