-1

_Obj_1_Obj_2などの名前のオブジェクトがたくさんあります
。すべてをリリースしたいと思います。

KVCを使用しています。特にすべてを解放するために、私は以下を使用します:

MyClass *obj = nil;
for ( int i=1 ; i<=14; i++ ) {
  obj = [self valueForKeyPath:[NSString stringWithFormat:@"_Obj_%d", i]];
  [obj release];
}

clangアナライザーは私に教えてください[obj release];

この時点で呼び出し元が所有していないオブジェクトの参照カウントの誤ったデクリメント?

どうすれば修正できますか?

ARCプロジェクトではありません。

4

1 に答える 1

2

これは非常に簡単に修正できます

オブジェクトを所有していない場合(retainを呼び出さなかった場合)、オブジェクトを解放しないでください。

同じ名前の変数をたくさん持つ代わりに、配列を使用してオブジェクトを保持します。その場合、リリースはアレイのリリースのみになります。

于 2012-12-14T14:34:27.173 に答える