2012-04-02 102 views
3

我正在創建一個關於鳥類的應用程序。這個應用程序也應該在離線模式下工作。所以我決定使用Core Data。我計劃擁有一張有大約700張唱片的桌子。所有的鳥類將以桌面視圖顯示。 工作流程應該是這樣的:與網絡服務器同步核心數據

  1. 用戶啓動應用程序
  2. 請求被髮送到服務器後臺
  3. 響應解析
  4. 數據庫更新

我很感興趣有什麼最好的方法來做到這一點。我的意思是添加請求「最後修改」字段,這將減少數據庫應該更新的次數。我應該刪除我的實體的所有實例,或比較「最後修改」字段,然後更新/刪除/插入一個接一個地循環它們嗎?有沒有人做過時間分析? 當用戶在已經刪除舊實例並且未插入新實例的期間用鳥打開屏幕時,他將看到一個空表視圖,如何處理這種情況,我是否需要一個tmp實體? 我還有其他缺陷嗎?

回答

1

如果我理解你的話,你可以在應用程序和服務器數據庫中修改你的鳥,並且你希望最後一次更改被保存並轉移到另一端。然後你可以在你的NSUserDefaults中使用類似Last sync的東西,並且當你發送一個請求到服務器時,你發送你在上一次同步之後修改的所有入口(這是對核心數據的簡單請求),服務器還應該讓你回到他上次同步後更新的鳥類列表,以便您可以在應用中更新它們,然後更新LastSync值。

如果你只是總是從服務器獲取所有更新的鳥,只需使用我的答案的第二部分。