我正在努力解決與核心數據相關的問題。如何在iOS中使用新版本的應用程序修改核心數據時修復崩潰
在我的應用程序中,我使用Core Data來存儲和檢索值。在我的最新版本中,我爲舊版本的實體添加了一些屬性。我從App Store更新了應用程序,當我點擊需要顯示Core Data內容的頁面時,它正在崩潰。
如果刪除舊版本的應用程序並下載新版本,則不會崩潰。
我的需求是任何替代方案,無需刪除舊版本的應用程序(將舊版本與新版本合併)即可解決。
有關如何解決此問題的任何建議?
在此先感謝。
我正在努力解決與核心數據相關的問題。如何在iOS中使用新版本的應用程序修改核心數據時修復崩潰
在我的應用程序中,我使用Core Data來存儲和檢索值。在我的最新版本中,我爲舊版本的實體添加了一些屬性。我從App Store更新了應用程序,當我點擊需要顯示Core Data內容的頁面時,它正在崩潰。
如果刪除舊版本的應用程序並下載新版本,則不會崩潰。
我的需求是任何替代方案,無需刪除舊版本的應用程序(將舊版本與新版本合併)即可解決。
有關如何解決此問題的任何建議?
在此先感謝。
您是否設置了核心數據的版本控制?如果是這樣,在您的Xcode項目導航器中,您的.xcdatamodeld應該在其下面放置多個.xcdatamodeld。然後在屬性檢查器中選擇父代.xcdatamodeld選擇當前版本。
如果更改較小,則在加載舊版本的ontop新應用程序版本時,這將自行處理。
如果更改很重要,您需要在應用程序委託中爲此設置處理以告訴應用程序如何在兩個版本之間移動數據。
@ Augie..ThanQ ..我會按照上面的方式嘗試。讓你知道。 – Vidhyanand
@ Augie ..我已經完成了上面的代碼,包括AppDelegate .. 但仍然是它的崩潰原因:'不能合併模型與兩個不同的實體名爲「考試」。 – Vidhyanand
您必須將Core Data存儲從舊版本遷移到新版本。
本教程展示的是如何工作的:http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration
在[Apple文檔(https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html)上CoreData版本控制是一個很好的開始。 –
相關:http://stackoverflow.com/questions/1018155/what-do-i-have-to-do-to-get-core-data-to-automatically-migrate-models –