Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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
Ios 使用ARC时释放NSMutableArray_Ios_Objective C_Memory Management_Automatic Ref Counting - Fatal编程技术网

Ios 使用ARC时释放NSMutableArray

Ios 使用ARC时释放NSMutableArray,ios,objective-c,memory-management,automatic-ref-counting,Ios,Objective C,Memory Management,Automatic Ref Counting,我正在使用最新的SDK和ARC开发一个iOS应用程序 我有一个变量: NSMutableArray* _previewImageBuffer; 这种方法: - (void)shutdown { [self stop]; _previewImageBuffer = nil; } 是\u previewImageBuffer=nil正确吗?如果我这样做,那么在_previewImageBuffer`中分配的内存会发生什么情况?这是内存泄漏吗 我想释放此对象,因为我需要释放它使用的

我正在使用最新的SDK和ARC开发一个iOS应用程序

我有一个变量:

NSMutableArray* _previewImageBuffer;
这种方法:

- (void)shutdown
{
    [self stop];
    _previewImageBuffer = nil;
}
\u previewImageBuffer=nil正确吗?如果我这样做,那么在_previewImageBuffer`中分配的内存会发生什么情况?这是内存泄漏吗


我想释放此对象,因为我需要释放它使用的内存。

您所做的完全正确。在ARC下对对象实例变量进行零化将释放该对象。释放NSArray,如果它导致NSArray被释放,也会释放其所有元素

如果您对内存管理和ARC有疑问或困惑,最好停下来仔细阅读事实,直到您不再有疑问或困惑为止。我的书可能有一个有用的解释:


在电弧下,这不是泄漏。内存将被释放。在学习ARC时,您还应该了解
strong
参考之间的区别


您也应该退房。

也许在这里回答?但并非只有你一个人,在手动管理内存这么多年后,现在查看ARC代码有时会让人困惑:p你引用的答案让人困惑,不适用于此处次要细节:将指针设置为nil不会取消分配指针,它会导致指针地址所在的对象可能被解除分配——如果没有其他强指针对其进行地址分配的话。指针
\u previewImageBuffer
本身属于“this”对象,在删除该对象时将被解除定位。