一種流行的做法是你的服務器端對象轉換成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