2012-03-25 10 views
0

Я извлекаю много объектов на отдельных путях ресурсов и соответствующим образом настраиваю их.RestKit Отображение нескольких корневых объектов ТОЛЬКО на Post/Put

Однако, когда я отправляю новый объект (например, гостевую карту), он содержит другие объекты (взаимодействия, арендаторы). Таким образом, данные ответа имеют несколько корневых объектов: гостевая карта/арендаторы/взаимодействия. Я выбрал этот метод вместо того, чтобы вставлять сериализованный ответ, поскольку он более точно соответствует тому, как я обычно извлекаю и разбираю вещи (как отдельные объекты.)

Как я могу обрабатывать это как одно отображение? Я полагаю, что могу как-то это сделать, используя один из новых методов блоков, например - (void) postObject: (id) object usingBlock: (void (^) (RKObjectLo ader *)) block

Могу ли я настроить анонимное отображение, которое просто указывает различные корневые ключи на правильные сопоставления классов?

ответ

1

Таким образом, при использовании метода postObject или putObject RestKit автоматически попытается сопоставить результат json с исходным объектом, который был отправлен. Per Blake, это необходимо для объектов с поддержкой не Core Data, поэтому вам не нужно создавать экземпляр целого нового объекта.

Однако в моем сценарии, где я пытаюсь отобразить 3 ключевых словаря верхнего уровня в существующие сопоставления с объектами, поддерживающими основные данные, это не имело смысла.

Получается, что вам нужно выполнить нулевое значение targetObject, а затем стандартное кодирование с использованием ключевого значения будет принято (при условии, что ваши корневые объекты правильно введены в json).

Если вы все еще нужны методы делегата, чтобы стрелять, вы можете установить loader.delegate

 [objectManager postObject:guestCard usingBlock:^(RKObjectLoader *loader){ 
      loader.targetObject = nil; 
      loader.delegate = self; 
     }]; 
Смежные вопросы