NSError 详解

前言

       我们在平时在函数回调参数都是使用字典和字符串,数组等。然而在系统中的api回调出来的参数基本上都是NSError类,反思我们平时研发中所有的参数是否可以使用NSError来作为回调参数。故而研究了NSError的使用以及基本原理。

一:NSError的结构

   1.error  domain  :作用域 ,错误范围,其类型为字符串

      错误发生的范围,也就是产生错误的根源,通常用一个特有的全局变量来定义,“处理URL的子系统”在从URL中解析或者取得数据时如果出错了,那么就会使用NSURLErrorDomain来表示错误范围。

2. error  code  :错误码,其类型为整数

     独有的错误代码,用以指明在某个范围内具体发生了何种错误。某个特定的范围内可能会发生一系列相关错误,这些错误情况通常采用enum来定义。例如当http请求出错时,可能会把http状态码设为错误码。

3.user info :用户信息,其类型为字典

     有关此错误的额外信息,其中或许包含一段“本地化的描述”,获取还含有导致该错误发生的另外一个错误,经由此种信息,可将相关错误串成一条“错误链”。

例如:

staticNSString*constkJDPayResultMsgNull =@"请检查您的网络状况";

- (NSError*)getErrorWithDomain:(NSString*)domain code:(NSInteger)code localizedDescription:(NSString*)localizedDescription

{

    return [NSError errorWithDomain:domain

                               code:code

                           userInfo:@{NSLocalizedDescriptionKey: (localizedDescription ?:kJDPayResultMsgNull)}];

}

            returnModel.returnError= [self   getErrorWithDomain:@"JDPayNetworkServerErrorDomain"code:[returnModel.errorCode intValue] localizedDescription:returnModel.returnMessage];

返回参数:(id result , NSError * error);

你可能感兴趣的:(NSError 详解)