我在initWithCoder方法中泄漏。

unarchiveObjectWithData:cacheData是否会返回自动释放的对象吗?由谁负责释放unarchiveObjectWithData:cacheData返回的对象?

@implementation MyObject
@synthesize something = _something;

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super init])
    {
         self.something = [aDecoder decodeObjectForKey:@"something"];
    }
}

- (void)dealloc
{
        self.something = nil;
        [super dealloc];
}

@end


这是我从文件中读取对象的地方

MyObject *myObject = [NSKeyedUnarchiver unarchiveObjectWithData:cacheData];

最佳答案

unarchiveObjectWithData:cacheData是否会返回自动释放的对象吗?由谁负责释放unarchiveObjectWithData:cacheData返回的对象?


只要记住NARC。如果您要调用的方法以newallocretaincopy开头,则您拥有返回的任何对象并必须将其释放。如果没有,它将自动发布。

07-27 22:36