问题
With Core Data Migration Debug enabled, when performing a migration I see three entities (2, 3, 4) with changed hashes, as expected. Entity 1 doesn't change and is for illustration.
Store metadata (source model):
Entity1 = <67852e01 ...>;
Entity2 = <2b68bba5 ...>;
Entity3 = <58babd8d ...>;
Entity4 = <1c694c80 ...>;
Current model (destination model):
Entity1 = <67852e01 ...>;
Entity2 = <260e4d68 ...>;
Entity3 = <13360b6f ...>;
Entity4 = <16513e1b ...>;
Next, I create the mapping model, but the hashes in the mapping model are different than those in the actual models:
Mapping Model Source Hashes:
Entity1 = <67852e01 ...>;
Entity2 = <2b68bba5 ...>;
Entity3 = <d66bed18 ...>; // !!!
Entity4 = <2c56997a ...>; // !!!
Mapping Model Destination Hashes:
Entity1 = <67852e01 ...>;
Entity2 = <260e4d68 ...>;
Entity3 = <cb08343c ...>; // !!!
Entity4 = <1bc2cf8c ...>; // !!!
What are the reasons the mapping model could be created with different hashes than the actual store's hashes? I looked at this question and tried updating the Mapping Model's models, but it didn't work.
回答1:
The solution that finally worked was to create a new model version in which those entities were removed, then create another new model, with the entities re-introduced.
来源:https://stackoverflow.com/questions/10894383/core-data-mapping-model-version-hashes-not-matching-to-source-model-version-hash