当在分支之间切换时发生核心数据问题(NSInternalConsistencyException)
我在几个分支上使用Objective-C中的Core Data中的Core数据来处理git,每个分支都从创建MyProject.xcdatamodeld
的公共主分支继承。当在分支之间切换时发生核心数据问题(NSInternalConsistencyException)
运行测试时收到的错误是caught "NSInternalConsistencyException", "+entityForName: could not locate an entity named 'MyManagedObject' in this model."
,调用-[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:]
时发生,并且MyManagedObject是NSManagedObject的简单子类。
在分支之间切换后出现此错误,但看起来并不一致,因为有时我的测试没有错误地运行。我已确保我的managed object context is not nil已尝试清理我的项目,清理我的生成文件夹,并删除派生数据文件夹,但没有成功。我记得在构建之间从模拟器中删除应用程序(因为每个分支使用不同的核心数据模型),并且检查了我的所有拼写,没有发现任何拼写错误。
请让我知道我可以提供哪些其他信息来帮助调试!
回答:
所以这是我奇怪的解决方案,它的工作原理:
- 清洁(按住Shift-CMD-K)和干净生成文件夹...(按Alt-Shift键-CMD-K)。
- 将
.xcdatamodeld
添加到编译阶段。 - 构建测试(Shift-Cmd-U)。 - n.b.编译将失败
- 从Compile Phases中删除
.xcdatamodeld
。 - 从模拟器中删除应用程序。 - 如果核心数据架构已更改
我不知道为什么这个作品,尤其是因为似乎没有任何在.xcodeproj/project.pbxproj
文件来改变。
以上是 当在分支之间切换时发生核心数据问题(NSInternalConsistencyException) 的全部内容, 来源链接: utcz.com/qa/259570.html