我在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];
答案 0 :(得分:1)
unarchiveObjectWithData:cacheData会返回一个自动释放的对象吗?谁负责从unarchiveObjectWithData:cacheData?
中释放对象
记住 NARC 。如果您调用的方法以new
,alloc
,retain
或copy
开头,那么您拥有任何返回的对象并且必须将其释放。如果没有,那么它是自动释放的。