4

在过去的几个小时里,我一直在努力弄清楚为什么insertNewObjectForEntityForName会返回NSManagedObject,即使我正在尝试插入我自己类型的实体。

我检查了一千次的事情:

  • 类名称在图表设计器中设置为正确的值
  • 实体与另一个实体具有多对多关系,创建另一个实体按预期工作,我确实得到了正确输入的输出,我发誓它们是相同的

发生这种情况的可能原因是什么?我不知道从哪里看,谷歌并没有多大帮助:(

编辑(已解决):

这与版本控制有关...我删除了数据模型并重新创建了它,一切都开始工作了,在以前使用过几个版本之前...叹息有时问一个问题可以让我们知道如何找到一个解决方案

我仍然对为什么会发生这种情况感到困惑,即使它现在已经解决了

4

5 回答 5

7

我最终遇到了类似的情况,但采用了不同的解决方案。通过一系列不幸的事件(命名空间冲突迫使我更改了一个实体),我最终得到了一个自定义实体,该实体的 Class 设置为数据模型中的默认 NSManagedObject 而不是正确的自定义子类。

因此,在您经历删除整个数据模型并重建它的麻烦之前(就像我刚刚所做的那样,感谢上帝的 git 分支),只需检查以确保您的 Class 仍然设置正确。

于 2011-11-18T21:45:42.523 回答
1

我也发生过这种情况,但它不是一个损坏的模型,它实际上是模型文件中我的实体定义中的一个错字。

基本上实体和属性都是正确的,但我的实体的“ClassName”有错字。这会导致 Core Data 有足够的信息来实际读取和写入实体,但它无法实例化该类(因为它实际上并不存在我输入错误的名称)

于 2011-04-15T02:37:17.280 回答
0

这与版本控制有关...我删除了数据模型并重新创建了它,一切都开始工作了,在以前使用过几个版本之前...叹息有时问一个问题可以让我们知道如何找到一个解决方案

于 2011-04-18T19:22:02.803 回答
0

在删除 NSManagedObject 子类的一些源文件并从 Xcode 中的模型编辑器重新生成它们之后,我今天遇到了同样的情况。

我检查了 project.pbxproj 文件,发现有一些不一致的 id-source 文件对(可能是 Xcode 错误?)。

我已经设法通过从项目中删除所有模型并再次添加它们来修复它(我还手动从 project.pbxproj 中删除了一些文件链接)。

谢谢你的提示。

于 2012-12-06T12:01:54.370 回答
0

今天也有同样的问题。拉了2个小时后发现我只是没有将实体类源文件添加到目标中!

于 2013-12-09T15:26:17.103 回答