2013-04-14 59 views

回答

1

在過去的日子裏...如果你使用第一個,你需要releasearr

第二次發佈autorelease d對象。

現在在ARC中,編譯器將自動釋放。

好處:arrayWithObjects:簡潔,不需要額外的方法調用。

+0

嗯,它更簡潔,但它會調用額外的方法調用,因爲它只是組合的一種便利函數'alloc'和'initWithObjects:'。 – gaige

+0

然後在ARC中都有相同的含義,對吧? @Anoop Vaidya – liza

+1

@liza:最終都會結束。但一個是類方法,另一個是實例方法。有時你不需要一個數組的實例,只是在字典中使用它。然後你用類方法去。我想你正在接受我。 –

1

在第一個語句中,您是生成的實例的所有者(因此如果不使用ARC,則負責釋放它),而在另一個語句中則不是(該數組是自動爲您發佈的)。 (場景的allocinit後面由NSArray實現調用)

2

第二是它返回一個autoreleased陣列一個方便的方法中,第一需要是存儲器管理。在ARC下,這些是等價的,並且數組文字可能比您需要的更詳細,使用@[@"Liza", @"Lipi", @"Rose"]而不是

+0

謝謝,但數組文字是存在於xcode 4.4+ – liza

+0

4.4已經出來了近6個月,任何理由不使用它? – wattson12

相關問題