iOS开发--Foundation框架之NSError

从属关系:NSError:NSObject :Foundation

NSError

NSError用法灵活,经由此对象,我们可以把导致错误的原因回调给调用者。NSError对象里封装了三条信息:

  • Error domain:错误范围,其类型为字符串
    错误发生的范围,也就是产生错误的根源,通常用一个特有的全局变量来定义。比方说,“处理URL的子系统”在从URL中解析或者取得数据时如果出错了,那么就会使用NSURLErrorDomain来表示错误范围。
  • Error code:错误码,其类型为整数
    独有的错误代码,用以指明在某个范围内具体发生了何种错误。某个特定的范围内可能会发生一系列相关错误,这些错误情况通常采用enum来定义。例如当http请求出错时,可能会把http状态码设为错误码。
  • User info:用户信息,其类型为字典
    有关此错误的额外信息,其中或许包含一段“本地化的描述”,获取还含有导致该错误发生的另外一个错误,经由此种信息,可将相关错误串成一条“错误链”。

NSError常见用法:

(1)参数是个指针,该指针又指向另外一个指针,那个指针指向NSError对象。或者也可以把它当成一个直接指向NSError对象的指针。这样以来此方法不仅能有普通的返回值,而且还能把NSError对象回传给调用者。其用法如下:

- (BOOL)doSomething:(NSError**)error{
NSError *error = nil;
BOOL ret = [object doSomething:&error];
if (error) {
    	//there was a error
}
return ret;
}

(2)通过下列代码把NSError对象传递到“输出参数”中:

- (BOOL)doSomething:(NSError**)error {
//Do something 
    if (/*there was an error*/) {
        if (error) {
            *error = [NSError errorWithDomain:domain code:code userInfo:userInfo];
    }
    return NO; 
    }else {
        return YES;
    }
}





你可能感兴趣的:(ONE,PIECE--iOS)