2010-06-16 70 views
0

我正在創建一個應用程序,其中包含需要預填充的信息數據庫。這些數據在未來版本中會有所變化。在同一個數據庫中,我還需要存儲用戶可編輯的信息,因爲該用戶編輯的數據與預先填寫的數據直接相關。iPhone:核心數據:在未來的應用程序版本中更新預填充的數據庫

我的問題是,如果我通過在第二個應用程序中創建重複數據模型並在發佈之前複製核心數據文件來預先填充數據庫,我將如何在未來的版本中處理該數據的更新而不破壞用戶現有的數據?核心數據遷移方法是否處理這個問題,還是必須編寫自定義方法以編程方式在首次啓動應用程序時處理合並?

回答

2

根據您的數據模型,您可以創建兩個單獨的持久性文件,一個是可寫的,一個是隻讀的。然後,您可以將兩個文件都添加到NSPersistentStoreCoordinator,並將它們都放到一起。然後您可以替換未來升級時的只讀文件。

但是,這取決於數據的兩半是如何交織在一起的。如果他們太緊密聯繫,那麼你很可能不得不以艱難的方式去做;在將來升級時,清除舊數據並逐個複製新對象。

+0

謝謝!這使我對事情更清楚。分割永久文件聽起來像是最理想的解決方案。 雖然有一個後續問題。可寫實體與只讀實體有幾個「一對多」和「多對多」的關係。如果我刪除只讀存儲中的項目,那麼可寫實體會指向null,而不是來自先前版本中存在的只讀實體中的某個值? – Cuzog 2010-06-17 05:02:01

相關問題