iOS 错误信息 NSError
来源:互联网 发布:mac版ppt保存嵌入字体 编辑:程序博客网 时间:2024/05/21 09:27
一、获取系统的错误信息
比如移动文件时,获取文件操作错误:NSError *e = nil;[[NSFileManager defaultManager] moveItemAtPath:sourcePath toPath:targetPath error:&e];if (e) { NSLog(@"move failed:%@", [e localizedDescription]);}先定一个空的错误信息
NSError *e = nil;取地址
&e如果有错误信息,打印错误的本地化描述
if (e) { NSLog(@"move failed:%@", [e localizedDescription]);}
二、自定义错误信息
通常可以通过下面语句,自定义个NSError对象
#define CustomErrorDomain @"com.xiaodao.test"typedef enum { XDefultFailed = -1000, XRegisterFailed, XConnectFailed, XNotBindedFailed}CustomErrorFailed;
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:@"is a error test" forKey:NSLocalizedDescriptionKey];NSError *aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed userInfo:userInfo];
其中,自定义错误域对象CustomErrorDomain,通常用域名反写,也可以是任何其他字符串
code错误标识, 系统的code一般都大于零,自定code可以用枚举(最好用负数, 但不是必须的)
userInfo自定义错误信息,NSLocalizedDescriptionKey是NSError头文件中预定义的键,标识错误的本地化描述
可以通过NSError的localizedDescription方法获得对应的值信息
主调用函数一般传入NSError指针的指针,来获取错误信息,例如
- (Bool)doSomething:(NSDictionary *)parameter1 error:(NSError **)aError{//TODO: do something *aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed userInfo:userInfo]; return Yes;}
三、NSError头文件解析
1.NSError对象中,主要有三个私有变量
错误域(NSInteger): _domain
错误标示(NSString *):_code
错误详细信息(NSDictionary *):_userInfo
通常用_domain和_code一起标识一个错误信息
获取_domain
- (NSString *)domain;
获取 _code
- (NSInteger)code;获取 _userInfo
- (NSDictionary *)userInfo;
2.预定义域
AppKit和Foundation库中主要的错误域
NSString *const NSCocoaErrorDomain;其他域
NSString *const NSPOSIXErrorDomain;NSString *const NSOSStatusErrorDomain;NSString *const NSMachErrorDomain;
3.预定义的userinfo键名
推荐的标准方式,通用键
NSString *const NSUnderlyingErrorKey;其他键,对应各自读取信息的方法:
//详细描述键NSString *const NSLocalizedDescriptionKey;//取方法- (NSString *)localizedDescription;//失败原因键NSString *const NSLocalizedFailureReasonErrorKey//取方法- (NSString *)localizedFailureReason;//恢复建议键NSString *const NSLocalizedRecoverySuggestionErrorKey;//取方法- (NSString *)localizedRecoverySuggestion;//恢复选项键NSString *const NSLocalizedRecoveryOptionsErrorKey//取方法- (NSArray *)localizedRecoveryOptions;//其他键NSString *const NSRecoveryAttempterErrorKey; NSString *const NSHelpAnchorErrorKey;NSString *const NSStringEncodingErrorKey ;NSString *const NSURLErrorKey;NSString *const NSFilePathErrorKey;
用法:
NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"这是错误详细的描述信息", NSLocalizedDescriptionKey, error, NSUnderlyingErrorKey, nil]];
4.主要的初始化方法:
- (id)initWithDomain:(NSString *)domain code:(NSInteger)code userInfo:(NSDictionary *)dict;+ (id)errorWithDomain:(NSString *)domain code:(NSInteger)code userInfo:(NSDictionary *)dict;
- ios 的错误信息NSError
- iOS 错误信息 NSError
- IOS开发之----NSError错误信息
- NSError错误信息
- 错误信息 NSError
- 错误信息 NSError
- 错误信息 NSError
- 错误信息 NSError
- 错误信息 NSError
- iphone跬步之--错误信息 NSError
- AFHTTPRequestOperation 错误信息 NSError code表示含义
- NSError
- NSError
- NSError
- NSError
- iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂
- iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂
- iOS中的NSError code(错误码)
- BCB自绘菜单
- Simplify Path
- Android内存使用研究
- 关于C/C++的几点认识
- ios中读写文件
- iOS 错误信息 NSError
- oracle利用 行内视图 实现分页(重点)
- WEBUS2.0 In Action
- IOS 常用正则表达式:
- 0欧电阻
- hdu4472 Count(简单dp)
- Ubuntu12.04-64Bit经典桌面环境右键没有反应问题解决
- 初入职场——实习那些事(2)
- poj 2478(很明显的欧拉函数)