05.深入探索Class的结构
一、内存平移
int nums[4] = {1, 2, 3, 4};
NSLog(@"数组nums的地址:%p\n", &nums);
for (int i = 0; i < 4; i++) {
NSLog(@"第%d个元素是%d地址是%p", i + 1, nums[i], &nums[i]);
}
NSLog(@"\n");
int *numsPointer = nums;
NSLog(@"数组nums的指针:%p\n", numsPointer);
for (int i = 0; i < 4; i++) {
NSLog(@"偏移%d,取值%d,地址是%p", i, *(numsPointer + i), (numsPointer + i));
}
二、Class的结构内存计算
三、objc_class: cache_t 的内存结构
3.1 小补充:LP64数据模型
3.2 内部联合体的内存结构
3.3 结构总结
四、objc_class : class_data_bits_t 的内存结构
五、class_data_bits_t : class_rw_t
5.1 class_rw_t的内存结构
5.2 一些重要函数
六、class_data_bits_t : class_rw_t : class_rw_ext_t
6.1 list_array_tt
6.2 class_ro_t
七、LLDB调试Class内存结构
结构图

7.1 成员变量
7.2 实例方法列表
7.3 协议列表
7.4 成员变量
7.5 类方法
Last updated