2014-09-24 66 views
0

多RKRequestDescriptors我有两个途径:具有相同RKRequestMethod

POST/food.json

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

请求描述:

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

-

POST/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的路径/food/batch和使用createRequestDescriptor为/food路径?

回答

0

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

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

+0

啊,我希望有一个RKRequestDescriptor特定路径:( – 2014-09-25 01:30:02