2

回到 0.10.0 之前,“错误”和“错误”消息都与 RestKit 一起“正常工作”。我看到在 0.10.0 中您可以为错误映射设置 rootKeyPath。

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

但是我只能将其设置为错误异或错误。对我来说,这似乎是一种倒退。我错过了什么?

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,它只会尝试将响应映射到错误映射,但它们只允许一个顶级密钥路径(据我所知)。因此,我无法同时映射“错误”和“错误”。我试图在不修改 restkit 的情况下解决此问题,但我必须修改您可以在我的分支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 回答