摘要:
第5章 内存管理 在 Objective-C 这种面向对象语言里,内存管理是个重要概念。要想一门语言写出内存使用效率高而且又没有 bug 的代码,就得掌握其内存管理模型的种种细节。 一旦理解了这些规则,你就会发现,其实 Objective-C 的内存管理没那么复杂,而且有了 “自动引用计数”(Aut 阅读全文
摘要:
本条要点:(作者总结) 协议可在某种程度上提供匿名类型。具体的对象类型可以淡化成尊从某协议的 id 类型,协议里规定了对象所应实现的的方法。 使用匿名对象来隐藏类型名称(或类名)。 如果具体类型不重要,重要的是对象能够响应 (定义在协议里的)特定方法,那么可使用匿名对象来表示。 协议定义了一系列方法 阅读全文
摘要:
本条要点:(作者总结) 通过 “class-continuation 分类” 向类中新增实例变量。 如果某属性在主接口中声明为 “只读”,而类的内部又要用设置方法修改此属性,那么就在 “class-continuation 分类” 中将其扩展为 “可读写”。 把私有方法的原型声明在 “class-c 阅读全文
摘要:
本条要点:(作者总结) 把封装数据所用的全部属性都定义在主接口里。 在 “class-continuation 分类” 之外的其他分类中,可以定义存取方法,但尽量不要定义属性。 属性是封装数据的方式。尽管从技术上说,分类里也可以声明属性,但这种做法还是要尽量避免。原因在于,除了 “class-con 阅读全文
摘要:
本条要点:(作者总结) 向第三方类中添加分类时,总是给其名称加上你专用的前缀。 向第三方类中添加分类时,总应给其中的方法名加上你专用的前缀。 分类机制通常用于向无源码的既有类中新增功能。这个特性极为强大,但在使用时也很容易忽视其中可能产生的问题。这个问题在于:分类中的方法是直接添加在类里面的。它们就 阅读全文