使用ARC时释放NSMutableArray

时间:2013-02-22 17:28:48

标签: ios objective-c memory-management automatic-ref-counting

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

我有这个变量:

NSMutableArray* _previewImageBuffer;

这个方法:

- (void)shutdown
{
    [self stop];
    _previewImageBuffer = nil;
}

_previewImageBuffer = nil;是否正确?如果我这样做,_previewImageBuffer`中分配的内存会发生什么?这是内存泄漏吗?

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

2 个答案:

答案 0 :(得分:5)

你正在做的事情是完全正确的。在ARC下取消对象实例变量会释放该对象。释放NSArray,如果它导致NSArray被释放,也会释放其所有元素。

如果您对内存管理和ARC有疑问或困惑,那么在您不再怀疑或困惑之前,最好停下来阅读事实。我的书有一个可能有用的解释:

http://www.apeth.com/iOSBook/ch12.html#_memory_management

答案 1 :(得分:1)

在ARC下,这不是泄漏。记忆将被释放。学习ARC时,您还应该查看strongweak引用之间的区别。

您还应该查看Apple's official introduction to ARC