-2

重複の可能性:
[NSMutableArray配列]と[[NSMutableArrayalloc]init]の違い

NSMutableArray* test = [NSMutableArray array];
NSMutableArray* test1 =[[NSMutableArray alloc]init];

違いはなんですか?

4

4 に答える 4

3

test(割り当てなかったので)解放する必要はありませんが、 (割り当てたので) 解放する必要がありますtest1(ARC が関与していないと仮定します)。

このメソッド[NSMutableArray array]はすでにautoreleaseed 配列を返しています。

于 2012-05-18T07:35:49.060 に答える
0

test自動リリースされます。これは、現在の自動解放プールに追加されたことを意味し、プールが空になると (通常、現在の実行ループが終了すると)、解放メッセージが送信されます。他の誰も保持を送信していない場合は、その時点でメモリを解放できます。

test1ではなく、有効な保持カウントが +1 です。解放するのはあなたの責任です。そうしないと、メモリがリークします。

于 2012-05-18T07:38:12.817 に答える
0

2 つのステートメント間の関係:

[NSMutableArray array] equivalent to  [[[NSMutableArray alloc] init] autorelease];
于 2012-05-18T07:42:41.927 に答える
0

1 つ目はクラスの静的メソッドでNSMUtableArray、初期化および自動再設定された配列を返します。2番目のステートメントでは、手動で割り当てて初期化します

于 2012-05-18T07:41:27.743 に答える