- 了解Objective-C语言的起源
- 在类的头文件中尽量少引入其他头文件
- 多用字面量语法,少用与之等价的方法
- 多用类型敞亮,少用#define预处理指令
- 用枚举表示状态、选项。状态码
- 理解“属性”这一概念
- 在对象内部尽量直接访问实例变量
- 理解“对象等同性”这个一概念
- 以“类簇模式”隐藏实现细节
- 在既有类中使用关联对象存放自定义数据
- 理解objc_msgSend的作用
- 理解消息转发机制
- 用“方法调配技术”调试“黑盒方法”
- 理解“类对象”的用意
- 用前缀避免命名空间冲突
- 提供“全能初始化方法”
- 实现descriptin方法
- 尽量使用不可变对象
- 使用清晰而协调的命名方式
- 为私有方法名加前缀
- 理解Objective-C错误模型
- 理解NSCopying协议
- 通过委托与数据源协议进行对象间通信
- 将类的实现代码分散到便于管理的数个分类之中
- 总是为第三方类的分类名称加前缀
- 勿在分类中声明属性
- 使用“class-continuation分类”隐藏实现细节
- 通过协议提供匿名对象
- 理解引用计数
- 以ARC简化引用计数
- 在dealloc方法中只释放引用并接触监听
- 编写“异常安全代码”时留意内存管理问题
- 以弱引用避免保留环
- 以“自动释放池”降低内存峰值
- 用“僵尸对象”调试内存管理问题
- 不要使用retainCount
- 理解“块”这一概念
- 为常用的块类型创建typedef
- 用handler块降低代码分散程度
- 用块引用其所属对象时不要出现保留环
- 多用派发队列,少用同步锁
- 多用GCD,少用performSelector系列方法
- 掌握GCD及操作队列的使用时机
- 通过Dispatch Group机制,根据系统资源情况来之星任务
- 使用dispatch_once来执行只需运行一次的线程安全代码
- 不要使用dispatch_get_current_queue
- 熟悉系统框架
- 多用块枚举,少用for循环
- 对自定义其内存管理语义的collection使用无缝桥接
- 构建缓存时选用NSCache而非NSDictionary
- 精简initialize与load的实现代码
- 别忘了NSTimer会保留其目标对象
Effective Objective-C 2.0
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 目标 最近在看一些iOS的进阶书籍,做一些简单的笔记来加深印象。这次读的是《Effective+Objective...
- 编写高质量iOS与OS X代码的52个有效方法 一、熟悉Objective-C 1、了解Objective-C语言...
- 本文主要对书中每个章节的要点进行梳理. 第1章.熟悉Objective - C 第1条.了解Objective-C...
- 说明:1.此文章不是原创,是读书笔记,大多数是摘抄自书籍的要点,作为自己日后复习使用2.此文纯手打,包括代码,难免...
- 最近在重温这本OC经典之作《Effective Objective-C 2.0编写高质量iOS与OS X代码的52...