struct objc_class : objc_object {
// Class ISA;
Class superclass;
cache_t cache; // formerly cache pointer and vtable
class_data_bits_t bits;
}
数据来源: 苹果obj4开源代码 第1012行 用以替换 上述简述引用中的 objc_class
可以看到objc_object这个对象的首字段是isa 指向一个Class
也就是说,我们如果有一个指向Class的地址的指针,相当于这个对象就已经可以使用了,只是像他的成员变量等等的一系列值都还没有被初始化。
所以接下来用(__bridge id)obj,调用是不会产生问题的
为什么能打印出ViewController对象?
这个问题就是由两个小部分组成的
1. name 这个属性是什么时候赋的值?
2. ViewController 这个对象是什么时候被传入的?
首先我们需要先了解一下,一个类对象的数据是如何存储的。
这里我就按照上文一样引用很多的论证了,我们自己来探究
该上代码了:










