OC对象的本质
2020-06-30 本文已影响0人
39Coding
一个NSObject对象占用多少内存?
- 系统分配了16个字节给
NSObject
对象(通过malloc_size
函数获得) - 但
NSObject
对象内部只使用了8个字节的空间(64bit环境下,可以通过class_getInstanceSize
函数获得),NSObject
对象只有一个isa
指针,这8个字节就是用来存放isa
这个成员变量
对象的isa指针指向哪里?
-
instance
对象的isa
指向class
对象 -
class
对象的isa
指向meta-class
对象 -
meta-class
对象的isa
指向基类的meta-class
对象,基类的meta-class
对象的isa
superclass指针的作用(class对象).jpg
OC的类信息存放在哪里?
- 实例方法、属性信息、成员变量信息、协议信息都存放在
class
对象中 - 类方法存放在
meta-class
对象中 - 成员变量的具体值存放在
instance
对象中