我通过引用我在网上找到的一些代码传递了一个错误。错误以空对象的形式返回,这意味着没有错误。
如果我检查error.code
我的访问权限不正确,因为对象是空的。
如果我检查error == nil
我得到一个错误,因为error
它是一个空对象。
如何使用逻辑来发现错误存在,但为空?
我通过引用我在网上找到的一些代码传递了一个错误。错误以空对象的形式返回,这意味着没有错误。
如果我检查error.code
我的访问权限不正确,因为对象是空的。
如果我检查error == nil
我得到一个错误,因为error
它是一个空对象。
如何使用逻辑来发现错误存在,但为空?
错误通常是类型NSError
或其子类。它们在以这种方式声明的方法中作为引用传递:
-(void)DoSomeStuff:(NSError **)error;
因此,当您调用一个需要您传递对 a 的引用的方法时,您可以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
}
PS 如果您没有收到错误并且该方法未按预期运行,则此方法的实现存在问题。特别是如果它是开源的东西,很容易出现编码错误,因此您可以查看该方法的作用,调试甚至修复错误...