我遇到以下代码的问题,其中Xcode标记内存问题。警告在代码之下,在返回线上。有人知道为什么,我能做些什么吗?带有+0保留计数的对象返回给调用者,其中+1(拥有)保留计数是预期的 - 为什么?
- (id)copyWithZone:(NSZone *)zone
{
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:self];
return [NSKeyedUnarchiver unarchiveObjectWithData:archivedData];
}
Mvariable.m:177:2:用0对象保留计数返回到呼叫者其中1(拥有)保留计数预计
Mvariable.m:177:9:方法返回具有+0保留计数的Objective-C对象
Mvariable.m:177:2:使用+0保留计数返回给调用方的对象
Mvariable.m:177:2:具有+0保留计数的对象返回到呼叫者,其中+1(拥有)保留计数预计
请注意,使用归档来复制对象绝对不是典型的。与通常的做法相比,它也很慢。 – bbum 2013-02-28 21:00:51
哦哇,我没有意识到一个方法名称的开始可以做到这一点,有多奇怪。感谢你的回答! – Tiago 2013-02-28 21:06:33
在过去,它只是一个惯例,没有ARC,或者__strong和__weak的标记或者(__attribute __((ns_returns_autoreleased)))的句法甜味......所以我们必须保留以某种方式跟踪事物... – 2013-02-28 22:02:53