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:] Failed transformation of value at keyPath ''. No strategy for transforming from 'JKDictionary' to 'NSString'
是否有办法配置 RestKit errorMapping
来接受哈希响应(并希望存储在 NSDictionary
中)?
最佳答案
我假设您使用的是默认错误映射?这会将错误键路径映射到 RKErrorMessage 类。这个类需要一个 NSString,但你有一个 NSDictionary(JKDictionary 因为你正在使用 JSONKit,但仍然......)。
如果您不想修改服务器代码,您可以在 iPhone 上创建自己的错误类并替换此默认映射。作为示例,您可以查看 RKErrorMessage.m 以及创建默认 map 的 [RKObjectManager init]。
关于objective-c - 如何配置 RestKit errorMapping 来接受更复杂的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11257878/