0.10.0より前に戻ると、「エラー」メッセージと「エラー」メッセージの両方が「RestKitで機能しました」。0.10.0では、エラーマッピングのrootKeyPathを設定できることがわかります。
objectManager.mappingProvider.errorMapping.rootKeyPath = @"errors";
ただし、エラーxorエラーにしか設定できません。私には、これは退行のように思えます。私は何が欠けていますか?
0.10.0より前に戻ると、「エラー」メッセージと「エラー」メッセージの両方が「RestKitで機能しました」。0.10.0では、エラーマッピングのrootKeyPathを設定できることがわかります。
objectManager.mappingProvider.errorMapping.rootKeyPath = @"errors";
ただし、エラーxorエラーにしか設定できません。私には、これは退行のように思えます。私は何が欠けていますか?
これは私がエラーを管理しなければならないものです:
#import <RestKit/RKErrorMessage.h>
...
//configure error manager
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping mapKeyPath:@"message" toAttribute:@"errorMessage"];
[objectManager.mappingProvider setErrorMapping:errorMapping];
0.10.0で、RestKitは、ステータスコードが4xxまたは5xxの場合にのみ応答をエラーマッピングにマップしようとするエラーコンテキストを追加しましたが、(私が知る限り)1つのトップレベルキーパスのみを許可します。したがって、「エラー」と「エラー」の両方をマッピングすることはできませんでした。レストキットを変更せずにこれを修正しようとしましたが、ブランチに表示される1行を変更する必要がありました https://github.com/stevemoser/RestKit/tree/fix-errors-context 次に、エラーマッピングを設定すると、次のようになります。このような:
#import <RestKit/RKErrorMessage.h>
#import <RestKit/RKObjectMappingProvider+Contexts.h>
[objectManager.mappingProvider setErrorMapping:nil];
[objectManager.mappingProvider setValue:[NSMutableDictionary dictionary] forContext:RKObjectMappingProviderContextErrors];
RKObjectMapping* errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping mapKeyPath:@"" toAttribute:@"errorMessage"];
[objectManager.mappingProvider setMapping:errorMapping forKeyPath:@"error" context:RKObjectMappingProviderContextErrors];
[objectManager.mappingProvider setMapping:errorMapping forKeyPath:@"errors" context:RKObjectMappingProviderContextErrors];