我在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。如果您要调用的方法以new
,alloc
,retain
或copy
开头,则您拥有返回的任何对象并必须将其释放。如果没有,它将自动发布。