2011-03-02 77 views
0

我有一個核心數據的iphone應用程序。在用戶從應用程序商店下載應用程序之前,我預先填充名爲DefaultValues的實體,然後將他自己的數據添加到其他實體。 DefaultValues永遠不會改變。現在,我想修改DefaultValues實體的一些數據並向它添加一些新的數據(實體模式沒有改變)。我該怎麼做??核心數據:如何在不擦除用戶數據的情況下遷移核心數據

當然,我在網上做了一些研究,然後再問這個問題。我發現了一些鏈接在這裏 Link 1:

Link 2

,但沒有具體回答這個問題。

我是否應該執行核心數據版本控制和數據遷移?或者我應該如何更改DefaultValues實體而不擦除用戶數據?

謝謝

回答

0

至於實際的遷移,搜索「輕量級遷移」。有一些關於它的蘋果文檔,也有一個主題here

但是,你說你使用核心數據來存儲默認值。你可能不應該使用核心數據,而應該使用NSUserDefaults

使用此代碼位設置默認值設置:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setBool:YES forKey:@"SomeSetting"]; 

以後可以得到價值SomeSetting像這樣:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
BOOL currentSetting = [defautls boolForKey:@"SomeSetting"]; 

同樣,你可以存儲字符串,數字和一堆其他的東西。

+0

謝謝fabian789。我使用核心數據,我的DefaultValues實體至少有50行。現在,我想再插入一行,不想修改數據模型。如何在不擦除其他實體中存在的用戶數據的情況下執行此操作? NSUserDefaults如何幫助我。你能否詳細解釋一下。謝謝。 – apiphone2020 2011-03-02 17:19:52

+0

我更新了我的問題。請注意,您可以在'NSUserDefaults'中存儲**任意數量的「行」**。很明顯,我的答案並沒有說明如何「插入一行」,我只是假設使用'NSUserDefaults'會比你說的數據存儲「DefaultValues」更好。 – fabian789 2011-03-03 17:49:47