我正在构建IOS SDK。
基本上,我正在进行异步网络请求(API调用)。出现错误时,将返回带有“error_key”,“error_description”,“error_code”键的字典。
如何使用NSError表示这三个信息?
我正在做以下事情:
NSMutableDictionary* details = [NSMutableDictionary dictionary];
[details setValue: error_description forKey: NSLocalizedDescriptionKey];
[NSError errorWithDomain: APPErrorDomain code: error_code userInfo: details];
如何更改userinfo以同时考虑error_key?
答案 0 :(得分:6)
如果您的“error_key”对应于其中一个预定义的userInfo
字典键,则应使用正确的密钥将其添加到userInfo
字典中。定义的键是:
NSString * const NSLocalizedDescriptionKey;
NSString * const NSErrorFailingURLStringKey;
NSString * const NSFilePathErrorKey;
NSString * const NSStringEncodingErrorKey;
NSString * const NSUnderlyingErrorKey;
NSString * const NSURLErrorKey;
NSString * const NSLocalizedFailureReasonErrorKey;
NSString * const NSLocalizedRecoverySuggestionErrorKey;
NSString * const NSLocalizedRecoveryOptionsErrorKey;
NSString * const NSRecoveryAttempterErrorKey;
NSString * const NSHelpAnchorErrorKey;
NSString * const NSURLErrorFailingURLErrorKey;
NSString * const NSURLErrorFailingURLStringErrorKey;
NSString * const NSURLErrorFailingURLPeerTrustErrorKey;
如果是自定义键,那么您只需将其添加到userInfo
字典中,并附上您想要的任何键。
答案 1 :(得分:2)
userInfo
是一个简单的字典,可以包含您放入其中的任何键和值。所以在你的情况下,这只是做一些事情的事情:
details[@"ErrorKey"] = error_key;
然后使用这些用户详细信息创建NSError对象。