ios检查空对象

时间:2012-06-04 17:22:53

标签: ios error-handling nserror

我通过引用在线找到的一些代码传递了一个错误。该错误作为空对象返回,意味着没有错误。

如果我检查error.code我收到错误访问,因为该对象为空。

如果我检查error == nil,我会收到 false ,因为error是一个空对象。

如何使用逻辑来查找错误,但是为空?

1 个答案:

答案 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。如果没有出现错误且方法没有按预期运行,则使用此方法实现时出现问题。特别是如果它是一个开源的东西,编码错误很容易出现,所以你可以看一下这个方法的作用,调试甚至修复一些问题......