摘要:
Effective Objective-C 2.0读书笔记 编写高质量的iOS和OS X的52个有效方法 第1条,Objective-C语言的起源 Objective-C 是C语言的超集(拓展 Extensions 或补充),增加了面向对象特性。大量使用方括号、方法名长,属于消息结构的语言(运行执行 阅读全文
摘要:
第7条,在对象内部尽量直接访问实例变量 直接访问实例变量的方法是:下划线+变量名;通常访问方式:self点语法或者类对象点语法。 直接访问实例变量,速度会更快(利)。 直接访问实例变量,不会调用set方法,绕过了属性的内存管理(利)。 直接访问实例变量,不会触发KVO键值观察(利)。 属性访问,有助 阅读全文
摘要:
第13条,用“方法调配技术”调试“黑盒方法”(重点) 运行期与选择子(selector)相匹配的方法(IMP)也是能改变的,这使得不用通过源代码或继承子类覆写方法就能改变类本身功能。 IMP是指函数的指针。 选择子可以和IMP之间动态连接。 使用另一份实现来替换原有的方法实现,这个过程叫“方法调配” 阅读全文
摘要:
第19条,使用清晰而协调的命名方式 起名时应遵从标准的 Objective-C 命名规范,这样创建出来的接口更容易为开发者所理解。 方法名要言简意赅,从左至右读起来要像个日常用语中的句子才好。 方法名里不要使用缩略后的类型名称。 给方法起名时的第一要务就是确保其风格与你自己的代码或所要集成的框架相符 阅读全文
摘要:
第25条,总是为第三方类的分类名称加前缀 向第三方类中添加分类时,总应给其名称加上你的专用的前缀。 向第三方类中添加分类时,总应给其中的方法名加上你专用的前缀。 关键词:第三方类、分类前缀 第26条,勿在分类汇总声明属性 分类中只能覆写主类的方法和新增方法,但是不能新增属性(实在要加,从技术上可行, 阅读全文
摘要:
第31条,在dealloc 方法中只释放引用并解除监听 在每个对象的生命周期内,dealloc方法只执行一次,就是保留计数为0 的时候,何时执行无法保证。 dealloc方法中主要做的操作是释放对象所拥有的引用。 dealloc方法中需要把原来的观测行为清理掉,比如通知(NSNotification 阅读全文
摘要:
第37条,理解“块”这一概念(重点) 多线程的核心是块(block)和GCD(Grand Central Dispatch)。 块是一种可以在C、C++、及OC代码中使用的“词法闭包”。 块的语法结构:return_type (^block_name)(paramerers) 块的强大之处在于:声明 阅读全文
摘要:
第43条,掌握 GCD 及操作队列的使用时机(重点) GCD是纯C的API,而操作队列则是OC的对象。 GCD中,任务用块来表示,块是个轻量级的数据结构。 那些只需要使用一次的代码,使用GCD的dispatch_once最方便。 NSOperation及NSOperationQueue的好处:取消某 阅读全文
摘要:
第49条,对自定义其内存管理语义的 collection 使用无缝桥接 通过无缝桥接技术,可以在Foundation框架的OC对象与CoreFoundation框架中的C语言数据结构之间来回转换。 在CoreFoundation层面创建collection时,可以指定许多回调函数,这些函数表示此co 阅读全文