OC对象的本质
作者:
39Coding | 来源:发表于
2020-06-30 12:46 被阅读0次
一个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

isa和superclass的关系图.jpg

isa指针.jpg

isa指针的作用.jpg

superclass指针的作用(meta-class对象).jpg

superclass指针的作用(class对象).jpg
OC的类信息存放在哪里?
- 实例方法、属性信息、成员变量信息、协议信息都存放在
class
对象中
- 类方法存放在
meta-class
对象中
- 成员变量的具体值存放在
instance
对象中
本文标题:OC对象的本质
本文链接:https://www.haomeiwen.com/subject/odtxqktx.html
网友评论