我有一个
的功能- (void)doSomeFunctionWithError:(NSError **)error;
如果该函数确实导致错误,我该如何检查是否发生错误? Apple建议检查nil的返回值,但显然我不能在这里做。我目前只是检查错误值是否为零,但似乎不赞成。
答案 0 :(得分:3)
您混淆的原因是提供此方法的人写错了。 Apple是对的:除非事先知道指针另一端有NSError,否则不应检查NSError指针的值。该方法应该返回一些告诉你的东西。
正确的约定,如果方法没有返回某个东西或者nil作为事情进展顺利的指示,那就是返回一个BOOL,如下所示:
- (BOOL)doSomeFunctionWithError:(NSError **)error;
那样,你有事要检查。例如,查看NSFileManager;它的很多方法都有这种模式(参见例如linkItemAtURL:...
)。