RestKit Отображение нескольких корневых объектов ТОЛЬКО на Post / Put - PullRequest
0 голосов
/ 26 марта 2012

Я получаю множество объектов по отдельным путям ресурсов, и для них настроены соответствующие отображения.

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

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

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

1 Ответ

1 голос
/ 27 марта 2012

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

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

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

Если вам все еще нужны методы делегата для запуска, вы можете установить loader.delegate

        [objectManager postObject:guestCard usingBlock:^(RKObjectLoader *loader){
            loader.targetObject = nil;
            loader.delegate = self;
        }];
...