2011-05-13 70 views
1

這個問題困擾了我很多,並試圖得到一些幫助。我知道這是一箇舊的,但我仍然沒有找到解決方案。合併模型可以使用輕量數據遷移嗎?

在我的申請,我嘗試使用modelByMergingModels我所有的數據模型聚集成一個,然後傳遞到persistentStoreCoordinator。一切都很好,直到我需要實施數據遷移,以防萬一未來數據模型發生變化。

以下是我所做的步驟。 1.設計 - 添加模態版本以創建新數據 2.添加新屬性,SAVE 3.將光數據遷移選項字典添加到addPersistentStoreWithType方法 4.運行程序並獲取錯誤。 「無法找到源存儲模型」;

但是,如果我將managedObjectModel訪問器更改爲只初始化一個數據模型並刪除modelByMergeingModels或mergedModelFromBundles。它只是工作。

所以我的問題是,它的數據遷移工作,當我使用合併模型或mergedModelFromBundles?

什麼是最好的方式,如果我有多個數據模型,並嘗試實現數據遷移。

希望這個問題有道理。非常感謝

+0

你能解決這個問題嗎? – Jeff 2014-04-07 06:45:00

回答

1

這是目前在覈心數據中的錯誤。請在http://bugreport.apple.com上打開雷達,以便Apple知道更多人遇到此問題。

至於解決方法,我不知道一個的,但是你可以嘗試單獨遷移模型。

+0

感謝您的回覆。我將嘗試單獨遷移模型。 – Yang 2011-05-16 04:45:30

0

合併模型不輕量級的數據遷移工作。

從Apple文檔:

執行自動輕巧遷移,核心數據需要能夠找到源和目標管理對象模型 S本身在運行時

如果您使用的是+modelByMergeingModels:以上的值用於目標模型。但是核心數據將無法找到源模型。在舊版本的應用程序中使用+modelByMergeingModels:創建了源模型,Core Data確實嘗試合併模型以找出源模型。

我最終什麼事做的是,我有(手動)通過編輯模型的XML文件創建一個新的合併.xcdatamodeld,添加它到項目,從編譯源代碼刪除獨立.xcdatamodeld S和而不是使用+modelByMergeingModels:使用NSManagedObjectModel-initWithContentsOfURL:與新的合併模型的URL。我可能會創建一個將在未來自動合併模型的腳本。

相關問題