NSMigrationManager&#39;模型已包含名为<entity name =“”>&#39; </entity>的实体

时间:2014-05-27 12:56:13

标签: objective-c core-data

我在尝试构建NSMigrationManager实例时遇到异常。 init方法抛出一个NSInternalInconsistencyException,其错误消息显示“Model已包含名为-Entity Name-的实体 - ”。我找不到任何可以帮助我找到可能的解决方案的东西。

我可以看到错误消息中提到的实体继承自基本实体。我可以看到这些实体(从其他实体继承的实体)的哈希值在源模型和目标模型之间是不同的,即使触发迁移的唯一更改是我向另一个实体添加了新属性。这让我想知道这是否是Apple的错误。

有什么想法吗?可能的解决方法?

Stack trace below:
0   CoreFoundation                      0x037081e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x034878e5 objc_exception_throw + 44
2   CoreData                            0x015d01c3 -[NSManagedObjectModel(_NSManagedObjectModelPrivateMethods) _addEntity:] + 307
3   CoreData                            0x015c9228 -[NSManagedObjectModel setEntities:] + 392
4   CoreData                            0x015c88b1 -[NSManagedObjectModel copyWithZone:] + 657
5   libobjc.A.dylib                     0x03499bcd -[NSObject copy] + 41
6   CoreData                            0x015db685 -[NSMigrationManager initWithSourceModel:destinationModel:] + 101

1 个答案:

答案 0 :(得分:1)

如果您提供“合并”源模型,则可能会出现此错误。修复方法是使用仅包含要合并的版本的模型。 (见答案here