OC对象
OC对象分类
- instance对象(实例对象)
- class对象(类对象)
- meta对象(元类对象)
对象的结构
- instance
- isa指针
- 其他成员变量
- class对象
- isa指针
- superclass指针
- 类的属性信息 (@property)
- 类的对象方法信息 (instance method)
- 类的协议信息 (protocol)
- 类的成员变量信息(ivar)
- meta-class
- isa指针
- superclass
- 类方法信息(class method)
获取类对象
1 | Class objectClass = [NSObject class]; // 获取类对象 |
isa指针和superclass
instance的isa指向class
class的isa指向meta-class
meta-class的isa指向基类的meta-class
class的superclass指向父类的class
如果没有父类,superclass指针为nil
meta-class的superclass指向父类的meta-class
基类的meta-class的superclass指向基类的class
instance调用对象方法的轨迹
isa找到class,方法不存在,就通过superclass找父类
class调用类方法的轨迹
isa找meta-class,方法不存在,就通过superclass找父类