5

一時的に使用する配列が必要な場合、これらの違いは何ですか。

1:

NSMutableArray *stuff = [[NSMutableArray alloc] init];
// use the array
[stuff release];

2:

NSMutableArray *stuff = [NSMutableArray array];
// use the array

3:

NSMutableArray *stuff = [[[NSMutableArray alloc] init] autorelease];
// use the array

短いので2番が好きです。1番または3番を使用する正当な理由はありますか?

4

1 に答える 1

10

ほとんどの場合、2番が最良の選択です。

ナンバー1は、何らかの理由で、ある時点でリリースを失う可能性がありますが、アレイをすぐにリリースします。これは、メモリが不足している環境で役立つ場合があります。

3番は、基本的に2番と冗長に相当しますが、対応するarrayWith*がないinitWith*を使用する場合に便利です。

注:反復ごとに新しい配列が必要な高価なループなど、メモリが不足している場合。新しいアレイを解放して割り当てないでください。アレイを使用-removeAllObjectsしてリサイクルするだけです。

于 2010-11-02T11:30:21.830 に答える