Популярным подходом является преобразование объектов на стороне сервера в JSON, а затем отправка строки JSON на устройство.На устройстве декодируйте JSON в значения NSDictionary / NSArray, используя некоторую инфраструктуру JSON (я предлагаю JSONKit , поскольку он очень простой и очень быстрый ).
Как только вы получитедекодированный JSON, вы можете использовать (10000 * предупреждение * о бесстыдном подключении) , чтобы превратить ваши NS * объекты в объекты CoreData и сохранить их на вашем телефоне.
Что касается поддержания отношений, вы можетеиспользуйте вложенное представление или плоское представление.Примером вложенной реализации может быть:
{
class: "Contact",
first_name: "John",
last_name: "Doe",
contact_type: {
class: "ContactType",
type: "some value"
},
department: {
class: "Department",
name: "Department of Transportation"
}
}
Это предпочтительный подход, если у вас есть простая база данных без циклов отношений.
В качестве альтернативы, вы можете использовать плоское представление:
{
class: "Contact",
id: 1,
first_name: "John",
last_name: "Doe",
contact_type_id: 15,
department_id: 34
}
{
class: "ContactType",
id: 15,
type: "some value"
}
{
class: "Department",
id: 34,
name: "Department of Transportation"
}
Тогда вам придется разрешить отношения вручную, используя contact_type_id и Department_id на устройстве.
Лучше всего протестировать оба этих подхода и посмотреть, какой из них работает лучше в вашем конкретном случае.Лично я бы рекомендовал вложенный подход (если это позволяет ваша структура БД), поскольку он намного быстрее и разрешение отношений выполняется на сервере (где вы, вероятно, можете себе это позволить), а не на устройстве (где вы, вероятно, можете »я не могу себе этого позволить, если у вас большая база данных).