首页 > 代码库 > 定制NSError
定制NSError
定制NSError
效果:
系统的NSError是可以自己定制的,以下提供代码来实现并表示如何使用:
YXError.h 与 YXError.m
//// YXError.h// CustomYXError//// Copyright (c) 2014年 Y.X. All rights reserved.//#import <Foundation/Foundation.h>// 自行添加错误码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
以下是自行添加错误代码的地方:
以下是设计的细节(其中,将字典,枚举值,字符串3者之间建立联系的做法还是很有意思的):
定制NSError
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。