Пожалуйста, потерпите меня, потому что я только учусь какао. Я прошел некоторые уроки, касающиеся Core Data, сейчас я изучаю RESTkit, чтобы использовать его с приложением Rails. Я также прочитал все документы, рецепты решений на вики-странице RESTkit (особенно iOS SDK: Advanced RestKit Development была очень полезна).
Ради простоты я собираюсь использовать очень ограниченное количество моделей / отношений в этом вопросе.
Предположим, у меня есть следующие модели: компания, человек, язык со следующими отношениями:
company many-to-many person
language 1-to-many person
и синхронизация RAILS и приложения для iOS.
В определенное время в приложение Rails вводится новый человек, связанный с существующей компанией и существующим языком:
например. Стив Джобс> Дисней, Стив Джобс> Английский
В то же время новый человек добавляется в новую компанию, и новый язык
например. Анна Куриникова> Nike, Анна Курникова> Русская
Теперь, как мне настроить решение для синхронизации? Я мог бы попросить JSON-дамп всех новых людей:
[{"person": {
"id": 123,
"name": "Steve Jobs",
"language": {
"id": 1,
"name": "English"
},
"company": {
"id": 1,
"name": "Disney"
}
}},
{"person": {
"id": 124,
"name": "Anna Kournikova",
"language": {
"id": 22,
"name": "Russian"
},
"company": {
"id": 47,
"name": "Nike"
}
}}]
Теперь мои вопросы:
1) может (и если да, то как?) RESTkit создать и связать новую компанию и язык. Я полагаю, что для существующей компании это не проблема, но новых в моих базовых данных еще нет.
2) существует ли способ избежать необходимости включать все данные о компании и языке, так как в реальном приложении это создаст огромные накладные расходы на данные, которые уже существуют на устройстве iOS, если люди будут добавлены в существующие компании
3) может быть подход, при котором сначала выбираются все новые языки, все новые компании, а затем выбираются все новые люди, и только идентификатор языка / компании, к которой они относятся, является лучшим подходом в этом смысле ( для сохранения полосы пропускания) но я не делаю много вещей вручную, которые RESTkit может делать автоматически?
4) что если существующий человек связан со второй компанией?
Поскольку это кажется очень реальной ситуацией в мире, я думаю, что странно, что в документации нет (похожих) примеров (я готов написать учебник по этому вопросу, если я смогу разобраться с вашим помощь.)