*localizedrecoveryoptions;本地恢复建议

@property (nullable, readonly, strong) id recoveryattempter;

@property (nullable, readonly, copy) nsstring *helpanchor;

预定义的userinfo键名

nsstring *const nsunderlyingerrorkey;//推荐的标准方式,通用键

nsstring *const nslocalizeddescriptionkey; //

详细描述键

nsstring *const nslocalizedfailurereasonerrorkey; // 失败原因键

nsstring *const nslocalizedrecoverysuggestionerrorkey; //恢复建议键

nsstring *const nslocalizedrecoveryoptionserrorkey; // 恢复选项键

//其他键

nsstring *const nsrecoveryattemptererrorkey;

nsstring *const nshelpanchorerrorkey;

nsstring *const nsstringencodingerrorkey ;

nsstring *const nsurlerrorkey;

nsstring *const nsfilepatherrorkey;

用法示例:

nsdictionary *userinfo1 = [nsdictionary dictionarywithobjectsandkeys:@"由于文件不存在,无法打开", nslocalizeddescriptionkey, @"失败原因:文件不存在", nslocalizedfailurereasonerrorkey, @"恢复建议:请创建该文件",nslocalizedrecoverysuggestionerrorkey,nil];

nserror *error = [[nserror alloc] initwithdomain:nscocoaerrordomain code:4 userinfo:userinfo1];//此处code是4,对照下面对照表4代表文件不存在。userinfo传userinfo1 查看自定义打印。userinfo传nil,查看本地化描述。

nslog(@"========%@",[error localizeddescription]);

nslog(@"========%@",[error localizedfailurereason]);

nslog(@"========%@",[error localizedrecoverysuggestion]);

二、nserror错误code对照表

foundation constants reference

nserror codes

nserror codes in the cocoa error domain.

enum {

nsfilenosuchfileerror = 4,

nsfilelockingerror = 255,

nsfilereadunknownerror = 256,

nsfilereadnopermissionerror = 257,

nsfilereadinvalidfilenameerror = 258,

nsfilereadcorruptfileerror = 259,

nsfilereadnosuchfileerror = 260,

nsfilereadinapplicablestringencodingerror = 261,

nsfilereadunsupportedschemeerror = 262,

nsfilereadtoolargeerror = 263,

nsfilereadunknownstringencodingerror = 264,

nsfilewriteunknownerror = 512,

nsfilewritenopermissionerror = 513,

nsfilewriteinvalidfilenameerror = 514,

nsfilewriteinapplicablestringencodingerror = 517,

nsfilewriteunsupportedschemeerror = 518,

nsfilewriteoutofspaceerror = 640,

nsfilewritevolumereadonlyerror = 642m

nskeyvaluevalidationerror = 1024,

nsformattingerror = 2048,

nsusercancellederror = 3072,

nsfileerrorminimum = 0,

nsfileerrormaximum = 1023,

nsvalidationerrorminimum = 1024,

nsvalidationerrormaximum = 2047,

nsformattingerrorminimum = 2048,

nsformattingerrormaximum = 2559,

nspropertylistreadcorrupterror = 3840,

nspropertylistreadunknownversionerror = 3841,

nspropertylistreadstreamerror = 3842,

nspropertylistwritestreamerror = 3851,

nspropertylisterrorminimum = 3840,

nspropertylisterrormaximum = 4095

nsexecutableerrorminimum = 3584,

nsexecutablenotloadableerror = 3584,

nsexecutablearchitecturemismatcherror = 3585,

nsexecutableruntimemismatcherror = 3586,

nsexecutableloaderror = 3587,

nsexecutablelinkerror = 3588,

nsexecutableerrormaximum = 3839,

}

url loading system error codes

these values are returned as the error code property of an nserror object with the domain “nsurlerrordomain”.

typedef enum

{

nsurlerrorunknown = -1,

nsurlerrorcancelled = -999,

nsurlerrorbadurl = -1000,

nsurlerrortimedout = -1001,

nsurlerrorunsupportedurl = -1002,

nsurlerrorcannotfindhost = -1003,

nsurlerrorcannotconnecttohost = -1004,

nsurlerrordatalengthexceedsmaximum = -1103,

nsurlerrornetworkconnectionlost = -1005,

nsurlerrordnslookupfailed = -1006,

nsurlerrorhttptoomanyredirects = -1007,

nsurlerrorresourceunavailable = -1008,

nsurlerrornotconnectedtointernet = -1009,

nsurlerrorredirecttononexistentlocation = -1010,

nsurlerrorbadserverresponse = -1011,

nsurlerrorusercancelledauthentication = -1012,

nsurlerroruserauthenticationrequired = -1013,

nsurlerrorzerobyteresource = -1014,

nsurlerrorcannotdecoderawdata = -1015,

nsurlerrorcannotdecodecontentdata = -1016,

nsurlerrorcannotparseresponse = -1017,

nsurlerrorfiledoesnotexist = -1100,

nsurlerrorfileisdirectory = -1101,

nsurlerrornopermissionstoreadfile = -1102,

nsurlerrorsecureconnectionfailed = -1200,

nsurlerrorservercertificatehasbaddate = -1201,

nsurlerrorservercertificateuntrusted = -1202,

nsurlerrorservercertificatehasunknownroot = -1203,

nsurlerrorservercertificatenotyetvalid = -1204,

nsurlerrorclientcertificaterejected = -1205,

nsurlerrorclientcertificaterequired = -1206,

nsurlerrorcannotloadfromnetwork = -2000,

nsurlerrorcannotcreatefile = -3000,

nsurlerrorcannotopenfile = -3001,

nsurlerrorcannotclosefile = -3002,

nsurlerrorcannotwritetofile = -3003,

nsurlerrorcannotremovefile = -3004,

nsurlerrorcannotmovefile = -3005,

nsurlerrordownloaddecodingfailedmidstream = -3006,

nsurlerrordownloaddecodingfailedtocomplete = -3007

}

三、自定义nserror

系统的nserror是可以自己定制的,以下提供代码来实现并表示如何使用:

yxerror.h 与yxerror.m

//

// yxerror.h

// customyxerror

//

// copyright (c) 2014年 y.x. all rights reserved.

//

#import

// 自行添加错误码

typedef enum : nsuinteger {

crash= -10000,

disconnect,

unknow,

} yxerrorcode;

@interface yxerror : nsobject

+ (nserror *)errorcode:(yxerrorcode)code userinfo:(nsdictionary *)dic;

+ (nsstring *)transformcodetostringinfo:(yxerrorcode)code;

@end

//

// yxerror.m

// customyxerror

//

// copyright (c) 2014年 y.x. all rights reserved.

//

#import "yxerror.h"

static nsdictionary *errordictionary = nil;

@implementation yxerror

+ (void)initialize

{

if (self == [yxerror class])

{

errordictionary = \

@{

/* code : errorwithdomain */

/* ==================================== */

@(crash) : @"crash",

@(disconnect) : @"disconnect",

@(unknow) : @"unknow",

/* ==================================== */

};

}

}

+ (nserror *)errorcode:(yxerrorcode)code userinfo:(nsdictionary *)dic

{

return [nserror errorwithdomain:errordictionary[@(code)]

code:code

userinfo:dic];

}

+ (nsstring *)transformcodetostringinfo:(yxerrorcode)code

{

return errordictionary[@(code)];

}

@end

以下是使用的代码:

//

// appdelegate.m

// nserror

//

// copyright (c) 2014年 youxianming. all rights reserved.

//

#import "appdelegate.h"

#import "yxerror.h"

@implementation appdelegate

- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions

{

// 定制一个nserror

nserror *error = [yxerror errorcode:crash

userinfo:nil];

nslog(@"%@", error);

// 翻译一个nserror(将code值翻译成字符串)

nslog(@"%@", [yxerror transformcodetostringinfo:-10000]);

return yes;

}

@end

nserror 自定义错误_iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂...相关推荐

  1. java注解 源码_详解Java注解教程及自定义注解

    详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06   作者:佚名   我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...

  2. Android自定义View进阶-MotionEvent详解

    欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录 我们微信公众号:杨守乐 推荐文章: 如果你喜欢上了一个程序员小伙,献给所有的程序员女友 学习资料(干货汇集)不断更新 ...

  3. win7下计划任务schtasks使用详解及错误:无法加载列资源的解决方法1

    win7下计划任务schtasks使用详解及"错误:无法加载列资源"的解决方法1 2011-12-10 20:33 schtasks 命令简述: 安排命令和程序,使其定期运行或在指 ...

  4. php动态写入vue,Vue自定义动态组件使用详解

    这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下. 现在基于vue的UI组件库有很多,比如iview,element-ui等.但有时候这 ...

  5. android 刷新标题栏,Android 自定义标题栏的实例详解

    Android 自定义标题栏的实例详解 开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据. 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮 ...

  6. jdbc 连接池 java_JDBC自定义连接池过程详解

    这篇文章主要介绍了JDBC自定义连接池过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 开发中,"获得连接"和" ...

  7. html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解

    ie浏览器网页上有错误解决方法详解 最近网友反馈我的浏览器左下角总显示"网页上有错误",我已经修复过IE了,可是不管用.然后在浏览器上看不到网上的视频和图片的播放.在QQ空间上输入 ...

  8. 我的世界服务器区块修复,MC新人解决区块错误问题教程详解

    MC新人解决区块错误问题教程详解.那Mcedit区块有时候会有一些错误,那下面小编就教新人怎么解决区块错误的问题方法吧!希望对各位新手有所帮助. 很多时候一个存档玩久了,就会出现区块错误的情况 通常发 ...

  9. linux右键菜单颜色,Linux_自定义右键菜单代码详解, style !-- /*定义菜单 - phpStudy...

    自定义右键菜单代码详解 < style > < !-- /*定义菜单方框的样式1*/ .skin0 { position:absolute; text-align:left; wid ...

  10. python代码图片头像_Flask 上传自定义头像的实例详解

    Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...

最新文章

  1. Android Studio离线打包5+SDK
  2. access 战地1不加入ea_战地1正式加入origin access
  3. 普华基础软件笔试_普华“2018上海市软件和集成电路产业发展专项资金项目”成功验收...
  4. 华为交换机关闭Telnet、开启SSH服务命令
  5. 选择标签至文本域效果,可多选/可过滤重复/可限制个数
  6. 分享AceAdminUI后台框架-你喜欢吗?
  7. bootstraptable 一条数据跨行_据说它是唐山市拥有奶茶店最多的一条街,你一定也逛过!...
  8. php 生成xls解决乱码,怎么解决php导出excel文件乱码问题
  9. WiFi万能钥匙要做人与场景的连接器
  10. C语言 拓补排序 有向无环图
  11. Oracle 数据库(一)—— Oracle 数据库基本介绍
  12. XILINX-FPGA下载工具--CH347FPGADownloader
  13. AutoCAD哪个版本好
  14. 博瑞智能云音箱云喇叭API开发定时播报文档(2023-4-5)
  15. 爱思助手苹果服务器调整,爱思助手怎么改虚拟位置 爱思助手改虚拟位置方法...
  16. 在UBUNTU LINUX下搭建 ANDROID开发
  17. 5 6c语言上机作业答案,(完整版)C语言考试题库及答案
  18. 恶意url_预测URL的恶意
  19. c语言存款利息的计算switch,求助。。关于用switch编写简易计算器
  20. 阿里妈妈API接口;item_search - 按关键字或网址搜索商品

热门文章

  1. PostgreSQL 中文手册
  2. android 高清播放器,高清播放器我要下载-高清播放器 安卓版v9.6.2-PC6安卓网
  3. OneData指标体系
  4. 如何进入DOS系统 | 常用DOS系统命令
  5. VRRP原理及配置方法
  6. CoolShell-第4题
  7. LeapFTP 使用指南
  8. 基于掷色子规则的c语言编程,掷骰子游戏-C语言
  9. JavaScript --------WebS APIs学习之网页特效(动画函数封装)
  10. ae渲染出现错误是什么问题_怎样彻底检查根治AE导出失败,渲染影片出错问题...