2011-12-19 92 views
5

什麼型差分之間:NSMutableArray裏的alloc初始化VS的NSMutableArray陣列

[[NSMutableArray alloc] init] 

[NSMutableArray array] 
+5

[[NSMutableArray array \] vs \ [[[NSMutableArray alloc \] init \]]之間的可能重複(http://stackoverflow.com/questions/5423211/diference-between-nsmutablearray-array-vs -nsmutablearray-alloc-init) – kennytm 2011-12-19 04:48:31

回答

11

這裏在[NSMutableArray array]你不必發佈array它會自動發佈。 &如果你會寫[NSMutableArray alloc] init],你將不得不釋放array所以[[NSMutableArray array]將相當於[[[NSArray alloc] init] autorelease];

+0

我編輯這個,ImageList = [[NSMutableArray alloc] init];作爲ImageList = [[[[NSMutableArray alloc] init] autorelese];但它不起作用。什麼應該是錯誤 – susitha 2011-12-19 05:03:46

+0

你正在使用的xcode&ios版本? – 2011-12-19 05:32:28

+0

Xcode 4.1和ios 4.3 – susitha 2011-12-19 06:37:40

1

第一保留在內存中,直到你放開,第二持續,直到運行循環結束迭代。

1

NSMutableArray無需釋放內存和[NSMutableArray alloc] init]ü必須將其釋放。

0

當ARC做的工作,你必須釋放對象來自方法,包括初始化,分配,新,複製和mutableCopy,如[NSMutableArray裏的alloc]初始化]。如果沒有,對象將被註冊到autoreleasepool,如[NSMutableArray數組]。