美文网首页
OC对象的内存:一个NSObject对象占多少内存?

OC对象的内存:一个NSObject对象占多少内存?

作者: 没有黑眼圈de熊猫 | 来源:发表于2021-09-10 12:43 被阅读0次

问:一个NSObject对象占多少内存?

答:NSObject 对象占16个字节的内存。NSObject本质上一个包含isa指针的结构体。结构体在内存中占8个字节的内存。但是根据iOS系统内存对齐原则,最低分配16个字节。但是内部使用了8个字节

问:OC对象的分类

答:主要分为三种:instacne 对象(实例对象),class对象 (类对象),meta-calss对象 (元类对象)

instance 对象是通过类alloc出来的对象,每次调用alloc都会产生新的instance对象

instance对象在内存中存储的信息包括:isa指针和其他成员变量

类对象,可通过object_getClass获取每个类在内存中有且只有一个class对象

class对象在内存中存储的信息包括:isa指针,superclass指针,类的属性信息(@property)类的对象方法信息(instance method)减号开头的方法,

类的协议信息(protocol)类的成员变量信息(ivar)比如成员变量的类型,名称等

class方法返回的一直是类对象

元类对象

可通过 Class objectMetaClass = object_getClass([NSObject Class]);  类对象放入

objectMetaClass 是NSObject的meta-Class对象(元类对象)

每个类在内存中都有且仅有一个元类对象

元类对象和class对象的内存结构是一样的。但是用途不一样,在内存中存储的信息主要是:

isa指针

superclass的指针

类的类方法信息(class method)加号开头的方法

问:object_getClass 方法返回

答:如果是instance对象,返回class对象

如果是class对象,返回meta-class对象

如果是meta-class对象,返回NSObject(基类)的meta-class对象

相关文章

  • OC对象的内存:一个NSObject对象占多少内存?

    问:一个NSObject对象占多少内存? 答:NSObject 对象占16个字节的内存。NSObject本质上一个...

  • NSObject 底层本质

    一、OC 转 C/C++ 二、NSObject 对象内存布局 三、NSObject 内存大小 四、OC 对象内存布...

  • OC对象的本质

    OC和C_C++OC和C_C++ 一个NSObject对象占多少内存 也就是说person指针指向的这段内存空间,...

  • oc对象本质

    一个NSObject 对象占多少内存 一个NSObject对象所占用的内存是16个字节(isa 只占8字节)。为什...

  • Objective-C对象的内存分配

    一个NSObject对象占用多少内存? 本章主要研究一个OC对象在内存中是如何布局和占用多少内存的。后面主要通过把...

  • OC 对象的总结

    1 oc对象、类的本质是什么,OC对象的内存布局是什么样子的,一个NSObject对象占用多少内存,一个自定义类的...

  • OC对象的本质 1--一个OC占用多少内存

    OC 对象本质是结构体类型 即 一个NSObject对象占用多少内存? 系统会分配16个字节给NSObject对象...

  • iOS中OC对象的本质

    一个OC对象在内存中如何布局?以及一个NSObject对象占用多少内存? 我们知道OC的底层语言是c/c++我们平...

  • 探寻OC对象的本质

    iOS底层原理总结 - 探寻OC对象的本质 面试题:一个NSObject对象占用多少内存? 探寻OC对象的本质,我...

  • iOS面试题整理笔记

    OC语法篇 面向对象 1. 一个NSObject对象占用多少内存? 系统分配了16个字节给NSobject对象(通...

网友评论

      本文标题:OC对象的内存:一个NSObject对象占多少内存?

      本文链接:https://www.haomeiwen.com/subject/uhngwltx.html