2014-09-24 3 views
0

У меня есть два пути:Несколько RKRequestDescriptors с таким же RKRequestMethod

POST/food.json

Тело запроса: {"food": {"name":"Banana", color:"yellow"}}

Запрос Descriptor:

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" }]}

Запрос Descriptor:

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 для определенных путей :( –

Смежные вопросы