5

IOS SDK を構築しています。

基本的に、非同期のネットワーク リクエスト (API 呼び出し) を行っています。エラーが発生した場合、キー「error_key」、「error_description」、「error_code」を含む辞書が返されます。

NSError を使用してこれら 3 つの情報を表すにはどうすればよいですか?

私は次のことをしています:

 NSMutableDictionary* details = [NSMutableDictionary dictionary];
[details setValue: error_description forKey: NSLocalizedDescriptionKey];
[NSError errorWithDomain: APPErrorDomain code: error_code userInfo: details];

error_key も考慮するように userinfo を変更するにはどうすればよいですか?

4

2 に答える 2

8

「error_key」が定義済みのuserInfo辞書キーの 1 つに対応する場合は、適切なキーを使用してそれを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 に答える