errorMapping
定义为:
[[[[RKObjectManager sharedManager] mappingProvider] errorMapping] setRootKeyPath:@"error"];
它与简单的错误消息作为字符串一起使用时效果很好:
render status: :unprocessable_entity, json: { :error => 'cannot create topic' }
但是,哈希响应失败:
render status: :unprocessable_entity, json: { :error => @topic.errors }
并给出:
w ^
restkit.object_mapping:RKObjectMappingOperation.m:239:-[RKObjectMappingOperation
transformValue:atKeyPath:toType:]处的值转换失败
keyPath”。没有从“JKDictionary”转变为“JKDictionary”的策略
'NSString'
有没有办法配置RestKit的
errorMapping
接受哈希响应(并希望存储在NSDictionary
中)? 最佳答案
我假设您使用的是默认错误映射?这会将错误键路径映射到RKErrorMessage类。此类需要一个NSString,但是您有一个NSDictionary(JKDictionary,因为您正在使用JSONKit,但仍然...)。
如果您不想修改服务器代码,则可以在iPhone上创建自己的错误类,并替换此默认映射。例如,您可以看到RKErrorMessage.m以及创建默认映射的[RKObjectManager init]。