一种流行的做法是你的服务器端对象转换成JSON,然后发送JSON字符串到设备。在设备上,使用一些JSON框架将JSON解码为NSDictionary/NSArray值(我建议JSONKit,因为它非常简单,并且very fast)。
一旦你有了你的解码JSON,你可以使用(无耻插头警告)this technique把你的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手动的关系,在设备上。
最好测试这两种方法,看看哪一种在你的特定情况下效果更好。就个人而言,我建议使用嵌套方法(如果您的数据库布局允许),因为速度更快,关系解析在服务器上完成(您可能负担得起),而不是在设备上(您可能可以“如果你有一个庞大的数据库,就不用担心)。
嗨弗拉基米尔,感谢您的回应。我真的想要确定什么是最好的方法,这样我的数据就会尽可能小,因此它们很快。你有没有尝试微软新的同步框架4,他们声称与任何设备通过电话交谈? – MattyD 2010-11-15 21:46:30