• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

当在分支之间切换时发生核心数据问题(NSInternalConsistencyException)

xcode 来源:Ken M. Haggerty 4次浏览

我在几个分支上使用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文件来改变。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)