2012-06-05 70 views
3

啓用了核心數據遷移調試時,執行遷移時,我發現三個實體(2,3,4)具有更改的哈希,如預期的那樣。實體1不改變並且用於說明。核心數據映射模型版本哈希與源模型版本哈希不匹配

存儲元數據(源模型):

Entity1 = <67852e01 ...>; 
Entity2 = <2b68bba5 ...>; 
Entity3 = <58babd8d ...>; 
Entity4 = <1c694c80 ...>; 

當前模型(目標模型):

Entity1 = <67852e01 ...>; 
Entity2 = <260e4d68 ...>; 
Entity3 = <13360b6f ...>; 
Entity4 = <16513e1b ...>; 

接下來,我創建映射的模式,但在映射模型中的哈希值是不同於那些在實際的模型中:

映射模型源哈希:

Entity1 = <67852e01 ...>; 
Entity2 = <2b68bba5 ...>; 
Entity3 = <d66bed18 ...>; // !!! 
Entity4 = <2c56997a ...>; // !!! 

映射模型目的地哈希:

Entity1 = <67852e01 ...>; 
Entity2 = <260e4d68 ...>; 
Entity3 = <cb08343c ...>; // !!! 
Entity4 = <1bc2cf8c ...>; // !!! 

什麼是映射模型,可以用不同的哈希值比實際商店的哈希創建的原因是什麼?我看着這question並試圖更新映射模型的模型,但它沒有奏效。

回答

4

最終工作的解決方案是創建一個新的模型版本,其中刪除了這些實體,然後創建另一個新模型,並重新引入實體。

+0

我不明白,你創建了新的xcdatamodel版本?你有兩個模型,你刪除並更換新的副本? – ray

+0

我使用Xcode的「New Model Version ...」菜單項添加了新的模型版本(稱爲「X」)。我從X中刪除了問題實體,然後添加了第二個新的模型版本(Y),我在其中添加了它們。基本上X只是一箇中間模型版本,用於清理實體。 –