如何设置RestKit 0.10.0以识别“错误”和“错误”消息?

时间:2012-06-01 13:30:24

标签: restkit

在0.10.0之前返回“错误”和“错误”消息“只是与RestKit一起工作”。我看到在0.10.0中你可以设置rootKeyPath来进行错误映射。

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

但是我只能将其设置为错误xor错误。对我而言,这似乎是一种回归。我错过了什么?

2 个答案:

答案 0 :(得分:2)

这是我必须管理的错误:

#import <RestKit/RKErrorMessage.h>

...

//configure error manager
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping mapKeyPath:@"message" toAttribute:@"errorMessage"];
[objectManager.mappingProvider setErrorMapping:errorMapping];

答案 1 :(得分: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];