1

我在使用以下代码时遇到问题,其中 Xcode 正在标记内存问题。警告位于代码下方,在返回行上。有人知道为什么,我能做些什么吗?

- (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(拥有)保留计数

4

1 回答 1

7

以“copy”、“create”、“new”、“alloc”或“retain”开头的方法必须返回一个已保留的对象,即调用者必须释放它。

[NSKeyedUnarchiver unarchiveObjectWithData:archivedData]返回一个自动关联的对象。

见:https ://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html

于 2013-02-28T20:59:38.327 回答