nserror 自定义错误_iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂...
*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 一看就懂...相关推荐
- java注解 源码_详解Java注解教程及自定义注解
详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06 作者:佚名 我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...
- Android自定义View进阶-MotionEvent详解
欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录 我们微信公众号:杨守乐 推荐文章: 如果你喜欢上了一个程序员小伙,献给所有的程序员女友 学习资料(干货汇集)不断更新 ...
- win7下计划任务schtasks使用详解及错误:无法加载列资源的解决方法1
win7下计划任务schtasks使用详解及"错误:无法加载列资源"的解决方法1 2011-12-10 20:33 schtasks 命令简述: 安排命令和程序,使其定期运行或在指 ...
- php动态写入vue,Vue自定义动态组件使用详解
这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下. 现在基于vue的UI组件库有很多,比如iview,element-ui等.但有时候这 ...
- android 刷新标题栏,Android 自定义标题栏的实例详解
Android 自定义标题栏的实例详解 开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据. 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮 ...
- jdbc 连接池 java_JDBC自定义连接池过程详解
这篇文章主要介绍了JDBC自定义连接池过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 开发中,"获得连接"和" ...
- html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解
ie浏览器网页上有错误解决方法详解 最近网友反馈我的浏览器左下角总显示"网页上有错误",我已经修复过IE了,可是不管用.然后在浏览器上看不到网上的视频和图片的播放.在QQ空间上输入 ...
- 我的世界服务器区块修复,MC新人解决区块错误问题教程详解
MC新人解决区块错误问题教程详解.那Mcedit区块有时候会有一些错误,那下面小编就教新人怎么解决区块错误的问题方法吧!希望对各位新手有所帮助. 很多时候一个存档玩久了,就会出现区块错误的情况 通常发 ...
- linux右键菜单颜色,Linux_自定义右键菜单代码详解, style !-- /*定义菜单 - phpStudy...
自定义右键菜单代码详解 < style > < !-- /*定义菜单方框的样式1*/ .skin0 { position:absolute; text-align:left; wid ...
- python代码图片头像_Flask 上传自定义头像的实例详解
Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...
最新文章
- Android Studio离线打包5+SDK
- access 战地1不加入ea_战地1正式加入origin access
- 普华基础软件笔试_普华“2018上海市软件和集成电路产业发展专项资金项目”成功验收...
- 华为交换机关闭Telnet、开启SSH服务命令
- 选择标签至文本域效果,可多选/可过滤重复/可限制个数
- 分享AceAdminUI后台框架-你喜欢吗?
- bootstraptable 一条数据跨行_据说它是唐山市拥有奶茶店最多的一条街,你一定也逛过!...
- php 生成xls解决乱码,怎么解决php导出excel文件乱码问题
- WiFi万能钥匙要做人与场景的连接器
- C语言 拓补排序 有向无环图
- Oracle 数据库(一)—— Oracle 数据库基本介绍
- XILINX-FPGA下载工具--CH347FPGADownloader
- AutoCAD哪个版本好
- 博瑞智能云音箱云喇叭API开发定时播报文档(2023-4-5)
- 爱思助手苹果服务器调整,爱思助手怎么改虚拟位置 爱思助手改虚拟位置方法...
- 在UBUNTU LINUX下搭建 ANDROID开发
- 5 6c语言上机作业答案,(完整版)C语言考试题库及答案
- 恶意url_预测URL的恶意
- c语言存款利息的计算switch,求助。。关于用switch编写简易计算器
- 阿里妈妈API接口;item_search - 按关键字或网址搜索商品
热门文章
- PostgreSQL 中文手册
- android 高清播放器,高清播放器我要下载-高清播放器 安卓版v9.6.2-PC6安卓网
- OneData指标体系
- 如何进入DOS系统 | 常用DOS系统命令
- VRRP原理及配置方法
- CoolShell-第4题
- LeapFTP 使用指南
- 基于掷色子规则的c语言编程,掷骰子游戏-C语言
- JavaScript --------WebS APIs学习之网页特效(动画函数封装)
- ae渲染出现错误是什么问题_怎样彻底检查根治AE导出失败,渲染影片出错问题...