2015-03-02 50 views
0

我正在使用核心數據的應用程序(一個應用程序已經在AppStore上運行)。好的,現在我想讓它對iOS8完全起作用,並且客戶還要求我在UI和結構方面做出很好的改變,所以我開始了一個完整的新項目並決定自己編寫代碼。一切正常,然後客戶通過電子郵件發送給我並確認,新版本的應用程序應該存儲&從數據庫中獲取現有值,如果現有應用程序將得到更新。我在這裏感覺不好。核心數據遷移如何適用於兩個項目?

我知道核心數據遷移是可能的(我讀this太多,但有一些小問題在我腦海中關於這個概念。

  • 正如我告訴,我開始了一個新的項目,雖然是有可能增加該模式的新版本?
  • 我們的實體和屬性名稱不一樣的。我把它命名爲我所希望的方式。
  • 我們的型號名稱是一樣的。比如Somename.xcdatamodel
  • 我的應用程序將更新對現有的應用程序AppStore

如何將現有的核心數據庫遷移到新的核心數據庫?

  • 這可能嗎?怎麼樣?

任何建議和幫助,將不勝感激。

注意: 我看了這個問題,Core Data Migration: How to delete the Core Data stack?,發現如果我刪除以前的模型沒有問題?你的建議是什麼?

+0

檢查這個問題,它可能會幫助你在你的問題。 http://stackoverflow.com/questions/5995231/example-or-explanation-of-core-data-migration-with-multiple-passes – jogshardik 2015-03-02 06:11:14

+0

@jogshardik,謝謝,我會盡快檢查。 – Hemang 2015-03-02 06:19:36

回答

0

如果您需要遷移並保留現有數據,則應該詳細瞭解編寫自定義策略Core Data Versioning Guide。完全閱讀本指南以瞭解您的應用遷移所屬的類別。 1.輕量級遷移。 2.或者您必須編寫自己的自定義策略。

據我所知,您提供的細節看起來可能是輕量級遷移,您無需執行任何操作,只需向xcdatamodel和映射模型添加新版本即可。如果沒有,那麼你必須編寫自己的定製策略和映射模型。

此外,請確保您測試升級正確。

+0

您可以將舊版本文件添加到您的數據庫,然後創建從舊模型到新模型的映射,將新模型保留爲當前模型。如果它只是命名實體中的更改,輕量級遷移將負責處理它。您當然應該閱讀上面提到的Apple文檔。這是版本控制的最佳資源。 – jarora 2015-03-02 05:50:46

+1

這就是映射的全部內容。您必須在映射中提及舊的屬性名稱。請閱讀我上面提到的文件。這是最好的指南。您剩下的問題可以通過回答。 – jarora 2015-03-02 06:32:56