2012-04-13 70 views
0

我在升級App Store中的應用程序時遇到問題。 這個應用程序有一個100個記錄的核心數據庫。在我的新版本中,我想用相同的模式上傳一個新的數據庫,但是有101條記錄,我希望在用戶更新應用程序時顯示新數據。使用核心數據中的新數據升級應用程序

根據我的理解,如果我只是更新核心數據中的數據,則舊數據庫將保留,訪問新數據的唯一方法是解除應用並重新安裝。

您是否有任何建議強制升級後手機上安裝的應用程序使用新的核心數據?

回答

0

該應用程序是否有一個sqlite文件包的一部分?如果是這樣,你可以檢查覈心數據中有多少行。如果是100,那麼將新的sqlite文件從bundle複製到Documents目錄。 This link might help.

+0

如果用戶在覈心數據表中更改了某些值,並且想要合併我的修改和來自用戶的修改,那麼該怎麼辦? 想象一下,用戶在覈心數據的相應表格中保存了他的收藏夾。想象一下,我想更新其他表格中的值。 任何想法??? – yassassin 2012-04-14 20:24:55

+0

你可以有多個NSManagedObjectContext對象。爲您的包中默認的sqlite文件創建一個額外的NSManagedObject。對於默認sqlite文件中的每個項目,檢查用戶是否修改了它。如果他們有,然後跳到下一個。如果不是,則更換這些值。如果該項目不存在,您可以添加它。 – bbarnhart 2012-04-14 20:40:13

+0

我無法擺脫這個問題。作爲一種解決方法,我在我的軟件包中包含了一個名稱不同的新數據庫,因此第一次安裝和使用該數據庫而不是舊數據庫。但我知道以這種方式,我將丟失用戶修改的記錄。 根據我對您的建議的理解,我必須在我的包中插入新舊數據庫,並使用第二個數據庫的修改記錄更新新數據庫。你說我必須使用兩種不同的上下文......但是如何?你有一些例子或教程嗎?提前致謝!! – yassassin 2012-04-15 16:01:34

相關問題