摘要:
自动引用计数(Automatic Reference Counting, ARC) 垃圾收集器: 从Mac OS X 10.8开始,“垃圾收集器”(gargae collector)已经正式废弃了。 每个对象都有个计数器,用以表示当前有多少个事物想令此对象继续存活下去。叫做“保留计数”(retain 阅读全文
posted @ 2016-08-09 19:02
Pikdays
阅读(859)
评论(0)
推荐(0)
摘要:
协议定义了一系列的方法。 id类型将类的类型隐藏起来了,可以有多个不同的实现类。只在运行期才查出些对象的实际类型 可以用协议把API之中的实现细节隐藏起来,将返回的对象设计为遵从此协议的纯id类型(也叫“匿名类型”)。这个概念就称为“匿名对象”(anonymous object)。 例: @prop 阅读全文
posted @ 2016-08-09 19:01
Pikdays
阅读(242)
评论(0)
推荐(0)
摘要:
Objective-C动态消息系统(参见第11条)的工作方式决定了其不可能实现真正的私有方法或私有实例变量。 匿名分类的特点: 与普通的分类不同,它必须定义在其所接续的那个类的实现文件里。 唯一能声明实例变量的分类。 而该分类没有特定的实现文件,其中的方法都应该定义在类的主实现文件里。 用法: 1、 阅读全文
posted @ 2016-08-09 19:00
Pikdays
阅读(203)
评论(0)
推荐(0)
摘要:
属性是封装数据的方式(参见第6条)。 属性只是定义实例变量及相关存取方法所用的“语法糖”,所以也应遵循同实例变量一样的规则。 分类机制,应该将其理解为一种手段,目标在于扩展类的功能,而非封装数据。 尽管从技术上说,分类里也可以声明属性,但这种做法应该尽量避免。 原因是:除了“class-contin 阅读全文
posted @ 2016-08-09 18:47
Pikdays
阅读(445)
评论(0)
推荐(0)
摘要:
分类机制通常用于向无源码的既有类中新增功能。 注意: 分类中的方法是直接添加在类里面的,它就好比这个类中的固有方法。 将分类方法加入类中这一操作是在运行时系统加载分类时完成的。 运行时系统会把分类中所实现的每个方法都加入类的方法列表中。 分类中的方法会覆盖原始类中那一份实现代码。 如果多个分类多次覆 阅读全文
posted @ 2016-08-09 18:45
Pikdays
阅读(230)
评论(0)
推荐(0)
摘要:
“分类”(Category)是Objective-C的一项语言特性。 利用分类,无须继承子类即可直接为当前类添加方法。由于Objective-C运行时系统是高度动态的,所以才能支持这一特性。 对.m文件进行拆分: 类的基本要素(如属性、初始化方法等)都声明在“主实现”(main implementa 阅读全文
posted @ 2016-08-09 18:42
Pikdays
阅读(159)
评论(0)
推荐(0)
摘要:
Objective-C语言特性:协议(protocol),它与Java的“接口”(interface)类似。 Objective-C不支持多继承,但可以把类的实现方法定义在协议里面。 协议最为常见的用途是实现委托模式(Delegate pattern)。 委托模式(Delegate pattern) 阅读全文
posted @ 2016-08-09 18:41
Pikdays
阅读(409)
评论(0)
推荐(0)
摘要:
如果想自定义类支持拷贝操作,那就要实现NSCopying协议(而不是复写copy方法)或 NSMutableCopying的协议。 不可变版本的拷贝: NSCopying协议,该协议只有一个方法: -(id)copyWithZone:(NSZone*)zone; // 以前开发程序时,会据此把内存分 阅读全文
posted @ 2016-08-09 18:38
Pikdays
阅读(797)
评论(0)
推荐(0)
摘要:
首先要注意的是: “自动引用计数”(Automatic Reference Counting, ARC,参见第30条)在默认情况下不是“异常安全的”(exception safe)。具体来说,这意味着:如果抛出异常,那么本应在作用域末尾释放的对象现在却不会自动释放了。如果想生成“异常安全”的代码,可 阅读全文
posted @ 2016-08-09 18:35
Pikdays
阅读(309)
评论(0)
推荐(0)
摘要:
私有方法名加上某些前缀, 1、有助于调试; 2、很容易区分公共方法和私有方法(即:容易区分哪些方法容易改动,哪些不易轻易改动。)。 Objective-C语言没办法将方法标为私有。 每个对象都可以响应任意消息(参见12条),而且可在运行期检视某个对象所能直接响应的消息(参见14条)。根据给定的消息查 阅读全文
posted @ 2016-08-09 18:33
Pikdays
阅读(238)
评论(0)
推荐(0)