@interface foo: NSObject
@property (nonatomic, retain) NSMutableArray *aMutableArray;
@end
@implementation
@synthesize aMutableArray
-(void)somefunction {
// Illustration
self.aMutableArray = [[[NSMutableArray alloc]init]autorelease];
self.aMutableArray = [[[NSMutableArray alloc]init]autorelease];
self.aMutableArray = [[[NSMutableArray alloc]init]autorelease];
}
@end
我已经做了类似的代码代码,这在我的程序的其他部分,但我需要的是一定的,这不会导致内存泄漏。随着我对autorelease
的理解,这个对象被正确释放了吗?我泄漏这个ObjectiveC对象吗?
[编辑 - 添加问题]虽然 一个问题:上面的酒店有保留属性,所以当编译器创建setter函数,二传手代码会是这个样子:
somecode..
retain newObj
release oldObj
somecode..
在上面的代码中,我将3个对象分配给了一个MutableArray。 每个它们分配时间,setter函数做了在newObj保留并在oldObj一个释放。所以,由于setter方法已经发布了,autorelease在第二次释放对象时会出现问题吗?
是。但是你有一个错字:缺少括号[在NSMutableArray中的前 – LuckyLuke 2011-12-18 17:48:00
感谢..编辑 – 2011-12-18 17:55:45
我已经编辑了以上问题,包括后续的问题,我有你的答案。谢谢 – 2011-12-18 18:26:53