一种流行的方法是将服务器端对象转换为 JSON,然后将 JSON 字符串发送到设备。在设备上,使用一些 JSON 框架将 JSON 解码为 NSDictionary/NSArray 值(我建议使用JSONKit,因为它非常简单且非常快速)。
一旦你有你解码的 JSON,你可以使用(无耻的插件警告)这个技术将你的 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 手动解决关系。
最好测试这两种方法,看看哪一种在您的特定情况下效果更好。就个人而言,我建议使用嵌套方法(如果您的数据库布局允许),因为它更快,并且关系解析是在服务器上完成的(您可能负担得起),而不是在设备上(您可能可以)如果您有一个大型数据库,则负担不起)。