NSMutableArray *a1 = [[NSMutableArray alloc] init];
NSMutableArray *a2 = [NSMutableArray array];
TempObj *obj = [[TempObj alloc] init]; //assume this line is repeated for each obj
[a1 addObject:obj];
[a1 addObject:obj2];
[a1 addObject:obj3];
[a1 addObject:obj4];
[obj release];
[obj2 release];
[obj3 release];
[obj4 release];
[a1 release];
好的,所以a2是一個autorelease obj所以我不必打電話發佈呢?你怎麼知道你什麼時候得到一個autorelease對象?NSMutableArray內存管理
而對於a1,我不必循環遍歷數組並首先釋放每個對象?如果我打電話給[a1 removeAllObjects];是否調用[[a1 objectAtIndex:#] release];
我是否應該在將它們添加到數組之後釋放這些對象?
因此,通過所有對象進行循環並釋放1乘1而不是調用數組本身釋放是錯誤的。 – chicken 2009-01-19 01:00:32
這是正確的 - 數組處理所有爲你。 – Andy 2009-01-19 02:30:09