2

最新の SDK と ARC を使用して iOS アプリケーションを開発しています。

私はこの変数を持っています:

NSMutableArray* _previewImageBuffer;

そして、この方法:

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

正しい_previewImageBuffer = nil;ですか?すると、_previewImageBuffer に割り当てられたメモリはどうなりますか? これはメモリリークですか?

このオブジェクトが使用しているメモリを解放する必要があるため、このオブジェクトを解放したいと考えています。

4

2 に答える 2

5

あなたがしていることはまさに正しいです。ARC の下でオブジェクト インスタンス変数を nilify すると、オブジェクトが解放されます。NSArray を解放すると、NSArray の割り当てが解除される場合、そのすべての要素も解放されます。

メモリ管理と ARC について疑いや混乱がある場合は、疑いや混乱がなくなるまで、立ち止まって事実を読み直すことをお勧めします。私の本には、おそらく役立つ説明があります。

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

于 2013-02-22T17:31:19.333 に答える
1

ARC では、これはリークではありません。メモリが解放されます。strongARC を学習するときは、 aとweakreferenceの違いにも注目する必要があります。

また、 Apple の公式の ARC 紹介もチェックしてください。

于 2013-02-22T17:38:36.087 に答える