XCode分析仪告诉我第4行有一个问题 - return [originalError copy];
- 但是我没有看到它。请帮帮我?
- (NSError *)errorFromOriginalError:(NSError *)originalError error:(NSError *)secondError
{
if (secondError == nil) {
return [originalError copy];
}
// ...
}
问题描述是:
第三个问题似乎表明我应该进一步更改方法的名称或行为。有什么建议吗?该方法源自Apple's Core Data Validation document中描述的errorFromOriginalError:error:
方法。其目的是合并originalError
和secondError
,以便secondError
是originalError
的子错误。
我的添加尝试确保在没有实际secondError
的情况下该方法仍然有效。由于如果secondError
不是nil
,则会创建一个新的错误对象,我想通过简单地复制错误对象在上面显示的情况下重新创建错误对象。
答案 0 :(得分:2)
您正在制作originalError的副本,但您的函数名称暗示返回的对象将被自动释放。尝试
return [[originalError copy] autorelease];
答案 1 :(得分:1)
[originalError copy]
创建一个保留计数设置为1的新对象。然后,调用方法负责release
该对象。如果你这样做那么它不一定是个问题,但是自动发布它可能是一个更好的想法。
即
return [[originalError copy] autorelease];