Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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编写的程序在OSX上运行时,如何观察内存分配/释放?_Objective C_Macos_Memory Management_Automatic Ref Counting - Fatal编程技术网

当用objective-c编写的程序在OSX上运行时,如何观察内存分配/释放?

当用objective-c编写的程序在OSX上运行时,如何观察内存分配/释放?,objective-c,macos,memory-management,automatic-ref-counting,Objective C,Macos,Memory Management,Automatic Ref Counting,我在研究Objective-C,我发现了ARC。我用一个类和一个实例变量NSUInteger编写了一个简单的程序。 出于教育目的,我想在程序运行时检查内存分配/释放 是否有任何控制台工具可以查看程序的内存?或者可以在Xcode本身中实现吗?换句话说,我希望在分配对象和解除分配对象的不同时间点看到内存快照 谢谢。首先,NSUInteger变量不是Objective-C意义上的对象。它们通过C内存管理进行处理。(通常它们是堆栈上的本地变量,在保留本地作用域时释放。) 因此,让我们转到类的实际实例对象

我在研究Objective-C,我发现了ARC。我用一个类和一个实例变量NSUInteger编写了一个简单的程序。 出于教育目的,我想在程序运行时检查内存分配/释放

是否有任何控制台工具可以查看程序的内存?或者可以在Xcode本身中实现吗?换句话说,我希望在分配对象和解除分配对象的不同时间点看到内存快照


谢谢。

首先,
NSUInteger
变量不是Objective-C意义上的对象。它们通过C内存管理进行处理。(通常它们是堆栈上的本地变量,在保留本地作用域时释放。)

因此,让我们转到类的实际实例对象,如
NSNumber
NSString
或–更重要的是–
MyCustomClass
。当您编写一个类并使用手动内存管理编译该类时,您可以看到内存管理的整个过程。(这可以通过编译器选项实现。选择项目,转到构建阶段/编译源代码,您将找到一个额外的列编译器标志。))由于ARC和MRC一起工作,ARC代码将执行MRC内存处理方法。只需在MRC类中覆盖它们,并做一些日志记录,设置一些断点等等


但是,这一点非常重要,只要只处理ARC代码,就不必关心内存管理。也许了解这一点是个好主意,但这并不是你必须要做的事情。

仪器
是实现这一目的的工具。选中向类添加dealloc方法;当对象被释放时调用它。