Effective Objective-C 2.0

  1. 了解Objective-C语言的起源
  2. 在类的头文件中尽量少引入其他头文件
  3. 多用字面量语法,少用与之等价的方法
  4. 多用类型敞亮,少用#define预处理指令
  5. 用枚举表示状态、选项。状态码
  6. 理解“属性”这一概念
  7. 在对象内部尽量直接访问实例变量
  8. 理解“对象等同性”这个一概念
  9. 以“类簇模式”隐藏实现细节
  10. 在既有类中使用关联对象存放自定义数据
  11. 理解objc_msgSend的作用
  12. 理解消息转发机制
  13. 用“方法调配技术”调试“黑盒方法”
  14. 理解“类对象”的用意
  15. 用前缀避免命名空间冲突
  16. 提供“全能初始化方法”
  17. 实现descriptin方法
  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,少用performSelector系列方法
  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会保留其目标对象

你可能感兴趣的:(Effective Objective-C 2.0)