我遇到以下代码时出现问题,其中Xcode标记了内存问题。警告位于返回线上的代码下方。有人知道为什么,我能做些什么呢?
- (id)copyWithZone:(NSZone *)zone
{
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:self];
return [NSKeyedUnarchiver unarchiveObjectWithData:archivedData];
}
Mvariable.m:177:2:具有+0保留计数的对象返回给调用者,其中预期+1(拥有)保留计数
Mvariable.m:177:9:Method返回一个带有+0保留计数
的Objective-C对象 Mvariable.m:177:2:对象以+0保留计数返回给调用者 Mvariable.m:177:2:具有+0保留计数的对象返回给调用者,其中预期+1(拥有)保留计数
答案 0 :(得分:7)
以“copy”,“create”,“new”,“alloc”或“retain”开头的方法必须返回一个已保留的对象,即调用者必须释放它。
[NSKeyedUnarchiver unarchiveObjectWithData:archivedData]
返回一个自动回放的对象。