具有相同RKRequestMethod的多个RKRequestDescriptors

时间:2014-09-24 17:18:16

标签: ios objective-c restkit restkit-0.20

我有两条路线:

发布 /food.json

请求正文:{"food": {"name":"Banana", color:"yellow"}}

请求描述符:

RKRequestDescriptor *createRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createMapping 
    objectClass:[Food class] 
    rootKeyPath:@"food" 
    method:RKRequestMethodPOST];

-

发布 /food/batch.json

请求正文:{"foods": [{"name":"Banana", color:"yellow"}, {"name":"Apple", "color":"red" }]}

请求描述符:

RKRequestDescriptor *batchRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:createMapping 
     objectClass:[Food class] 
     rootKeyPath:@"foods" 
     method:RKRequestMethodPOST];

-

我遇到的问题是创建和批处理请求都使用 POST 请求方法,所以如果我尝试将它们作为请求描述符添加,我得到: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot add request descriptor: An existing descriptor is already registered for the class 'Food' and HTTP method'(POST)'.'

请问描述符是否有条件我可以说:

使用路径batchRequestDescriptor的{​​{1}}并使用/food/batch路径的createRequestDescriptor?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您将使用命名路由(RKRoute Instances),当您想要发布POST时,您将使用requestWithPathForRouteNamed:object:parameters:,然后从路由创建您的操作。

了解GET的情况更常见,这就是getObjectsAtPathForRouteNamed:object:parameters:success:failure:存在的原因,但您需要做更多的工作(和/或创建自己的便利方法)