2

0.10.0より前に戻ると、「エラー」メッセージと「エラー」メッセージの両方が「RestKitで機能しました」。0.10.0では、エラーマッピングのrootKeyPathを設定できることがわかります。

    objectManager.mappingProvider.errorMapping.rootKeyPath = @"errors"; 

ただし、エラーxorエラーにしか設定できません。私には、これは退行のように思えます。私は何が欠けていますか?

4

2 に答える 2

2

これは私がエラーを管理しなければならないものです:

#import <RestKit/RKErrorMessage.h>

...

//configure error manager
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping mapKeyPath:@"message" toAttribute:@"errorMessage"];
[objectManager.mappingProvider setErrorMapping:errorMapping];
于 2012-06-04T01:33:12.287 に答える
0

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];  
于 2012-08-17T13:29:23.470 に答える