美文网首页
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