美文网首页
OC对象的本质

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