2010-08-17 88 views
0

希望得到關於此的一些明確建議。實時應用程序中的核心數據更新

我想在應用程序運行時將更新推送到我的應用程序。我計劃通過修改隨應用程序附帶的sqlite來完成此操作,然後讓應用程序下載它。簡單。

我還沒有計算出實際上如何讓應用程序看到新的數據,雖然..我可以覆蓋文檔目錄中的sqlite,但應用程序必須重新啓動才能接收新數據 - 無好。作爲第一步,我不介意對其進行的修改是否丟失,但我確實在尋找一種方法來保留對數據的任何修改,並根據新的sqlite添加/刪除條目。它將是整個數據集而不僅僅是變化。

由於數據相當複雜,但我可以通過基於相同內核數據模型的桌面應用程序進行管理,因此我正在走這條道路。

有沒有一個共同的方法,或者一種方法來實現這一目標?

謝謝。

+0

有沒有人知道這一點?我的模型沒有從v1更改爲v2。但對於我的應用程序的第2版,我想向用戶的SQL數據庫添加一些記錄。我不能爲了我的生活而弄清楚如何在一些新的記錄中下滑。 – RyeMAC3 2011-04-07 23:19:20

回答

2

沒有簡單的方法可以完全合併到兩個Core Data存儲SQL或其他方式。

維護對象圖的完整性需要通過使用與用於創建商店的模型相同的模型的上下文將新數據插入到現有商店中。換句話說,向商店批量添加新數據與從UI中一次添加一件商品的邏輯流程相同。你插入NSManagedObject實例,填充它們,設置它們的關係並保存它們。

理論上,您可以編寫出色的代碼庫,將新舊SQL數據庫合併到Core Data可以讀取的新SQL存儲中。然而,當蘋果未來發生某些事情時,這很複雜,沒有支持,並且很可能會中斷。

我建議讓應用程序自己從服務器上零碎地下載數據,然後將新數據插入到現有的商店中。使用類似JSON的方式發送數據是很簡單的。或者,您可以下載新的商店,將其添加到現有的持久性商店協調員,然後創建克隆舊商店中的新對象。然後從協調器中刪除下載的商店並刪除下載的商店文件。

+0

感謝TechZen,我試圖避免編寫一個web應用程序(儘管很簡單)來提供iPhone應用程序。由於處理多個商店沒有解決問題,我正在走JSON路徑。 – michael 2010-09-08 06:03:51

相關問題