5

我正在构建一个 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];

如何更改用户信息以同时考虑 error_key?

4

2 回答 2

8

如果您的“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字典中。

于 2013-10-11T18:36:23.807 回答
3

userInfo是一个简单的字典,可以包含您放入其中的任何键和值。因此,在您的情况下,只需执行以下操作:

details[@"ErrorKey"] = error_key;

然后使用这些用户详细信息创建 NSError 对象。

于 2013-10-11T18:30:31.740 回答