3

私が書く場合:

NSArray *arr=[[NSArray alloc]initWithObjects:@"Liza", @"Lipi", @"Rose"];
NSArray *arr=[NSArray arrayWithObjects:@"Liza", @"Lipi", @"Rose"];

どちらのステートメントも同じことを行います。では、これら 2 つのステートメントの違いは何ですか? また、一方を使用する利点は何ですか?

4

3 に答える 3

1

昔は...最初のものを使用した場合releasearr.

autoreleasewhile second はd オブジェクトを解放します。

ARC では、autoreleased はコンパイラによって配置されます。

利点: arrayWithObjects:簡潔であり、追加のメソッド呼び出しを 1 つ必要としません。

于 2013-04-14T13:11:31.403 に答える
1

最初のステートメントでは、生成されたインスタンスの所有者です (したがって、 を使用しない場合は、それを解放する責任もありますARC) が、他のステートメントではそうではありません (配列は自動的に解放されます)。(舞台裏でallocandinitは実装によって呼び出されNSArrayます)

于 2013-04-14T13:12:11.723 に答える