2014-09-24 65 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