2013-02-27 187 views
0

我使用ABC.xcdatamodel開發了Core Data存儲。 分發應用程序版本1.具有多個版本的核心數據遷移(輕量級)

需要對屬性名稱進行一些簡單的更改,因此我創建了一個新版本的ABC 2.vcdatamodel。 分發應用程序版本2. 工作正常。移民是完美的。然後,我需要做一些更簡單的更改(添加一個屬性),所以我創建了另一個基於ABC 2的新版本; ABC 3.xcdatamodel。 從版本2更新時自動遷移失敗。

然而,如果我嘗試從版本1構建版升級(使用ABC.xcdatamodel),所有東西都像魅力一樣工作。

我錯過了一些明顯的東西嗎?想法?

回答

0

一個想法 - 您可能無意中修改了您的第2版數據模型,使其不再匹配修改前創建的第2版商店。現在,當加載「真正」版本2商店的實例時,無法找到匹配的數據模型,因此無法將其從2翻譯爲3.您是否在使用版本之前檢查了版本2模型爲git/svn 3?它顯示爲已修改嗎?

請注意,「修改」並不一定意味着添加任何屬性 - 只是會更改核心數據用於定義版本的哈希值的任何小事情。

+0

就是你!我發現我錯誤地將關係從「建議」改爲「建議」。通過將哈希值輸出到控制檯來找到它。添加了名稱映射,並按預期工作。感謝名單。 – mputnamtennessee 2013-02-28 10:35:48

+0

我自己一直在與Core Data遷移問題摔跤,而且這個問題已經讓我苦惱了幾次。對於你的一些技巧,看看這篇文章關於打開核心數據遷移調試。我只是用它,這是一個很好的幫助,以確定哪些散列不匹配。我添加了一個鏈接到相關的Apple Technote到選定的答案:http://stackoverflow.com/questions/12835950/ – 2013-02-28 22:32:33

相關問題