Objective-C 编程中的内省、协议、类别和 nil 的应用
1. 内省(Introspection)
内省是检查对象元数据的能力,通过它可以确定对象所属的类、实现的方法以及声明的属性等。虽然能深入探究对象或类的细节,但常用的测试方法主要有三种。
1.1 类测试(Class)
每个对象都有一个 class 属性,该属性表示对象所属的类,而类本身也是一个 Class 类型的对象。 Class 对象有描述该类的属性和方法。
以下是访问器方法行为的要求表格:
| 属性 | 实现要求 |
| — | — |
| readonly | 必须实现 getter 方法,也可实现 setter 方法供类自身使用 |
| copy | setter 方法必须复制被设置的对象,并保留对副本对象的引用,不可变对象除外 |
| strong, weak, retain, assign | 根据属性声明的规则保留对象值,如在声明为 weak 的属性中不要强引用对象 |
| getter=, setter= | 根据属性声明命名 getter 和 setter 方法 |
| atomic | 编写 getter 和 setter 方法,使对属性值的访问和更改是原子操作,通常使用互斥信号量 |
有两个方法可用于测试对象的类:
- -isKindOfClass: :用于判断对象是否是特定类或该类的任何子类。示例代码如下:
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



