我有一個功能強大的應用程序,主要是面向數據庫的。我的客戶目前正在使用該應用程序,它有大量預先存在的保存數據(注意:它全部是本地的,不保存在在線數據庫中)。問題是,我知道當我更新數據模型時,我將不得不卸載然後重新安裝應用程序,否則它將因數據模型中的不一致而崩潰。有什麼方法可以在更新數據模型的同時保存數據嗎?保存核心數據?
Q
保存核心數據?
0
A
回答
3
我知道當我更新數據模型時,我將不得不卸載然後重新安裝應用程序,否則它將因數據模型中的不一致而崩潰。
不是真的,除非你不打算處理這個變化。核心數據支持將數據從一個數據模型版本遷移到新數據模型,以便現有數據存儲更新以使用新模型,而無需卸載或執行其他極端步驟。在大多數情況下,它甚至是自動的 - 你只需告訴它來處理變化。
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
如果你改變只包括一個或多個以下的這一工程:
- 添加或移除屬性
- 更改屬性的具體地說,在添加持久性存儲時,使用
options
參數「可選」標誌(假設您將它設爲非可選項,則提供默認值) - 重命名實體或屬性
- 添加,刪除或重命名實體
- 添加父母或子女的實體,或移動屬性不同點在層次
- 改變從一對一的關係,以一對多
如果你重命名無論如何,您需要設置重命名標識符,以便Core Data知道如何遷移。
如果這還不夠,Core Data支持非自動遷移有幾種不同的方式。這在Apple的文檔中有詳細介紹,我不會在這裏重現。
+0
這正是我所期待的。我不知道我可以自動遷移。謝謝。 –
相關問題
- 1. 保存NSNumber核心數據
- 2. 核心數據保存
- 3. 保存在覈心數據
- 4. 核心數據:未保存
- 5. 將核心位置數據保存到核心數據?
- 6. 將核心數據保存到核心數據
- 7. 將核心數據保存到核心數據
- 8. 未保存核心數據數據
- 9. 核心數據數據庫不保存
- 10. 核心數據不會保存數據
- 11. 將數組保存到核心數據
- 12. plists vs核心數據保存參數
- 13. 核心數據保存進度
- 14. 在覈心數據中保存照片
- 15. Swift 3多核心數據保存
- 16. 核心數據保存和提取
- 17. 保存時核心數據問題
- 18. 保存核心數據中的PHAsset?
- 19. 核心數據EXC_BAD_ACCESS隨機保存
- 20. 保存圖像到核心數據
- 21. 瞭解核心數據保存
- 22. 核心數據保存錯誤
- 23. 使用NSMutableArray保存到核心數據
- 24. 將照片保存至核心數據
- 25. 將視頻保存到核心數據
- 26. 保存UIAlert TextField到核心數據
- 27. 保存一個NSMutableArray到核心數據
- 28. 核心數據保存問題
- 29. 將UIImage保存爲核心數據
- 30. iPhone:核心數據保存錯誤
http://mobile.tutsplus.com/tutorials/iphone/core-data_schema-versioning-and-lightweight-migrations/ –