我通过引用在线找到的一些代码传递了一个错误。该错误作为空对象返回,意味着没有错误。
如果我检查error.code
我收到错误访问,因为该对象为空。
如果我检查error == nil
,我会收到 false ,因为error
是一个空对象。
如何使用逻辑来查找错误,但是为空?
答案 0 :(得分:7)
错误通常是NSError
类型或其子类。它们在以这种方式声明的方法中作为引用传递:
-(void)DoSomeStuff:(NSError **)error;
因此,当您调用一个要求您传递对NSError
的引用的方法时,您可以这样调用它:
NSError *error = nil;
[self DoSomeStuff:&error];
当此方法完成其工作时,您将检查错误对象是否实际上填充了某些内容:
if(error)
{
//Do some stuff if there is an error.
//To see the human readable description you can:
NSLog(@"The error was: %@", [error localizedDescription]);
//To see the error code you do:
NSLog(@"The error code: %d", error.code);
}
else //There is no error you proceed as normal
{
//Do some other stuff - no error
}
P.S。如果没有出现错误且方法没有按预期运行,则使用此方法实现时出现问题。特别是如果它是一个开源的东西,编码错误很容易出现,所以你可以看一下这个方法的作用,调试甚至修复一些问题......