Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何基于NSObject获取类的大小_Objective C - Fatal编程技术网

Objective c 如何基于NSObject获取类的大小

Objective c 如何基于NSObject获取类的大小,objective-c,Objective C,我是obj-c的新手。在这些天的实践中,我注意到基于NSObject的每个类都不能有这样的实体:nsobjecten但是代码> NSObjuleEn/COD>。 但是,有时我需要知道对象的大小。我不能简单地编写sizeof(en),因为en是一个指针变量。我也不能简单地使用sizeof(NSObject),因为编译器告诉我在这个架构和平台上不支持将sizeof应用于接口“XXXX” 我想知道是否有一种方法可以获得sizeof(NSObject)。如果没有,语法的设计目的是什么&任何其他获得大小的

我是obj-c的新手。在这些天的实践中,我注意到基于NSObject的每个类都不能有这样的实体:
nsobjecten但是代码> NSObjuleEn/COD>。
但是,有时我需要知道对象的大小。我不能简单地编写
sizeof(en)
,因为
en
是一个指针变量。我也不能简单地使用
sizeof(NSObject)
,因为编译器告诉我
在这个架构和平台上不支持将sizeof应用于接口“XXXX”


我想知道是否有一种方法可以获得sizeof(NSObject)。如果没有,语法的设计目的是什么&任何其他获得大小的方法。

首先,您应该导入
malloc.h

如果使用非圆弧:

malloc_size(myObject);
如果您使用的是ARC:

malloc_size((__bridge const void *) myObject));
这是一个与你的问题类似的问题。

来自

class_getInstanceSize

返回类实例的大小

大小\u t类\u获取实例大小(类cls)

参数cls是一个类对象。 返回值cls类实例的大小(以字节为单位),如果为0,则返回值 cls为零


但我怀疑这是你真正想要的。因为我从来没有发现它有用,也不认为它可能有用。(除了学习对象的内存布局和低级实现细节)

为什么需要知道NSObject的大小?请理解,您不能创建Objective-C对象的
[]
数组,也不能在标准框架之外分配/释放它们。而对象的“大小”可能只是一个小标题,在其他分配中包含对象的“胆量”。你甚至不能定义“大小”,更不用说有效地利用它了。