0

私のリークの場所を特定するのに本当に問題があります.私のクライアントはそれを介して検出し、TARGETS > RUN STATIC ANALYZERYESに設定しました. そしてProductクリックでAnalyze

彼は次のようなものを見ることができました。

ここに画像の説明を入力

しかし、私の場合、上記と同じものを出力できませんでした。インターネットで検索してみましたが、うまくいきませんでした。私は何かが欠けていますか?どんな助けでも大歓迎です。

4

1 に答える 1

0
self.responseData = [[NSMutableData alloc] initWithCapacity:[data length]];

これにより、オブジェクトが作成および初期化されます。したがって、その関数はそのオブジェクトを所有しています。プロパティを適切に使用している場合、割り当てられたときに保持され (そのステートメントで)、そのフィールドが再割り当てされたときに解放される (宣言されているretain) か、コピーされてコピーが適切に解放されます ( copy)。これらのいずれも、保持カウントが 1 のオブジェクトを残し、それへのポインタを持たない、リークの定義です。そのオブジェクトをその関数のどこかに置くrelease必要があります。autorelease

self.responseData = [[[NSMutableData alloc] initWithCapacity:[data length]] autorelease];

また

NSMutableData *newData = [[NSMutableData alloc] initWithCapacity:[data length]];
self.responseData = newData;
[newData release];
于 2012-09-26T03:04:56.747 に答える