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