RestKit:当操作失败时没有mappingResult的RKManagedObjectRequestOperation

时间:2014-11-26 13:01:14

标签: swift restkit

我在一个快速的项目中使用RestKit。 在我的RKObjectManager我正在设置以下RKResponseDescriptor

var responseDescriptor = RKResponseDescriptor(
                               mapping: PPAMappingProvider.responseMapping, 
                               method: RKRequestMethod.Any, 
                               pathPattern: nil, 
                               keyPath: "meta", 
                               statusCodes: nil)
self.addResponseDescriptor(responseDescriptor)

基本上,我的所有API请求都返回一个meta对象。我有其他映射来匹配result,一切正常。 当POST / PUT成功(状态代码200)时,我的API会返回如下内容:

{"meta":{"msg":"Success","ts":1417004530608},
 "result":{"_id":"H7mLYJc","user_id":1000,...}}

如果不成功(状态代码404),则返回例如:

{"meta":{"msg":"Item not found.","ts":1417004403903}}

根据documentation,当我设置statusCodes: nil时,映射应该适用于所有状态代码,甚至是404.问题是它没有,我必须添加代码:

responseDescriptor = RKResponseDescriptor(
                               mapping: PPAMappingProvider.responseMapping, 
                               method: RKRequestMethod.Any, 
                               pathPattern: nil, 
                               keyPath: "meta", 
                               statusCodes: RKStatusCodeIndexSetForClass(UInt(RKStatusCodeClassClientError)))
self.addResponseDescriptor(responseDescriptor)

(请注意statusCodes参数)如果我希望此映射适用于404响应。顺便说一下,我正在使用RKManagedObjectRequestOperation这些映射,但这不重要吗? 当服务器返回状态代码200时,这些映射工作完美。

这不是什么大不了的事,因为我开始工作了。我只是想知道我做错了什么,或者这是一个发送到RestKit的错误?

0 个答案:

没有答案