2

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

我有这个变量:

NSMutableArray* _previewImageBuffer;

而这个方法:

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

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

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

4

2 回答 2

5

你在做什么是完全正确的。在 ARC 下 Nilifying 对象实例变量会释放对象。释放 NSArray,如果它导致 NSArray 被释放,也会释放它的所有元素。

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

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

于 2013-02-22T17:31:19.333 回答
1

在 ARC 下,这不是泄漏。内存将被释放。strong在学习 ARC 时,您还应该查看 a或weakreference之间的区别。

您还应该查看Apple 对 ARC 的官方介绍

于 2013-02-22T17:38:36.087 回答