数据结构
1. objc_object
OC中平时使用的所有的对象(id类型),在Runtime中对应为objc_object的结构体。
objc_object结构体:
- isa_t
- 关于isa操作相关
- 弱引用相关
- 关联对象相关
- 内存管理相关
2. objc_class
OC中所使用的类(Class),在Runtime中对应为objc_class。继承自objc_object。
Class也是一个对象,称之为类对象。
objc_class结构体:
Class superClass;
指向父类的指针cache_t cache;
方法缓存,进行消息传递过程中会使用到class_data_bits_t bits;
类所定义的协议、属性以及方法
3. isa指针
- 指针型isa:isa的值代表Class的地址。
- 非指针型isa:isa的值得部分代表Class的地址。
在使用指针寻址过程中,例如在64位设备上,也许30、40位就能保证寻找到所有Class的地址,那么非指针型isa可以存储一些其他内容以达到节省内存的目的。
isa指向
- 关于对象,其指向类对象。
- 关于类对象,其指向元类对象。
- 所有元类对象的isa指针都指向根元类对象,包括根元类对象自己。
喜欢就支持一下吧
相关推荐