类对象的数据结构?
具体可以参看 Runtime 源代码。
类对象就是 objc_class。
struct objc_class : objc_object { // Class ISA; Class superclass; //父类指针 cache_t cache; // formerly cache pointer and vtable 方法缓存 class_data_bits_t bits; // class_rw_t * plus custom rr/alloc flags 用于获取地址 class_rw_t *data() { return bits.data(); // &FAST_DATA_MASK 获取地址值 }
它的结构相对丰富一些。继承自objc_object结构体,所以包含isa指针
- isa:指向元类
- superClass: 指向父类
- Cache: 方法的缓存列表
- data: 顾名思义,就是数据。是一个被封装好的 class_rw_t 。