2012-06-05 64 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只是一个中间模型版本,用于清理实体。 –