0

viewdidload 内に次のコードがあります。

NSMutableArray *children = [NSKeyedUnarchiver unarchiveObjectWithData:childData];
self.childrenArray = [children copy];

オブジェクトを新規またはコピーで初期化するときはいつでも、それを正しく解放する必要がありますか? したがって、xcode からコードを分析すると、childrenArray を解放しないというメモリ警告が表示されないのはなぜですか? 確認するためだけに、deallocでもリリースしていません。以前の多くのコードで、新しく始めたときに警告が表示されたことを覚えています。私はARCを使用していません。

編集: 私はコピー プロパティ、つまり @property(copy, nonatomic) を使用しています。ここでは、シンセサイザーが保持する代わりにオブジェクトをコピーすることを読みました。私の質問は、シンセサイザーがオブジェクトをコピーすると、オブジェクトの保持カウントが増加しない場合です。このシナリオのコンテキストでは、コピーは保持とどのように異なりますか? これを理解する必要があります。ありがとう

ありがとう。

4

1 に答える 1

0

アナライザーのバグ。ファイルしてください。バグの番号をここに投稿してください。(Xcode/clang の最新バージョンがフラグを立てない限り。)

ARC を使用していないため、アナライザーはあなたが巧妙であると想定している可能性があることに注意してください。ただし、これにはフラグを立てる必要があると思います。

于 2012-08-22T07:57:20.747 に答える