这会造成任何泄漏吗?

时间:2013-03-18 17:21:48

标签: objective-c cocoa memory-leaks nsarray

我的数组包含mutableCopy中Store类型的对象。我释放数组,在释放数组之前释放所有对象吗?

NSMutableArray *stores=[[NSMutableArray alloc]init];
[stores addObject:[store1 mutableCopy]];
[stores addObject:[store2 mutableCopy]];
[stores addObject:[store3 mutableCopy]];
...
[stores release];

2 个答案:

答案 0 :(得分:6)

如果您不使用ARC,则需要在某个时刻释放对象,因为- mutableCopy方法会创建一个保留计数为+1的新对象。为避免泄漏,您应该写:

[stores addObject:[[store1 mutableCopy] autorelease];

现在,没有理由不使用ARC。如果您使用ARC,那么就没事了,您也不会在任何事情上致电- release

答案 1 :(得分:4)

您应该使用:

[stores addObject:[[store1 mutableCopy] autorelease]];