NSInternalConsistencyException reason + entityForName:无法找到实体名称的NSManagedObjectModel

时间:2011-03-12 10:11:22

标签: ios core-data

使用界面构建器创建视图控制器,并将NSManagedObjectContext传递给它,完成所有操作。但我一直得到错误,就像我没有设置一样。

我发布这个是因为没有其他问题可以解决这个问题,但希望其他人能够受益。

在使用硬代码而不是IB之后,我注意到在App Delegate之前调用了根视图控制器的视图。这完全弄乱了预定的顺序。 NSLog向​​我展示了现在首先出现的问题。

很多时候,我严厉地质疑Apple(缺乏)使用英语语法,或者按照正常人的预期做事。就像iPad的应用程序商店没有在相关程序上显示全名一样,这就是其中之一。

所以是的,如果你正在使用NIB,那么硬编码addSubview部分而不是在Interface Builder中进行链接。即使您正确链接,也要对根视图控制器进行硬编码。或者,有经验的人可以发布另一个解决方案......  我可能会离开,或者甚至离开,但如果是这样的话......责怪Apple假设任何阅读教程的人总是需要“在文档中写一种方式”。

核心动画遭受同样的缺失信息和链接。好吧,我现在正在咆哮苹果。如果这个问题得到解决,我道歉,但我发现的所有问题都是错别字和“没有联系”。我做了所有提到的事情但它仍然没有,这非常令人困惑。

谢谢!

2 个答案:

答案 0 :(得分:0)

  

我注意到了根视图   之前调用过控制器的视图   App代表......

这是不可能的。在激活任何视图之前,必须调用应用程序委托的application:didFinishLaunchingWithOptions:。整个显示窗口由应用程序委托拥有,因此如果未加载应用程序委托,则没有可加载视图的窗口。

我已经创建了许多具有IB,核心数据和许多类型的视图和视图层次结构的应用程序,并且从未在应用程序委托之前看到过加载的视图。你错过了什么。

错误:

  

NSInternalConsistencyException原因   + entityForName:找不到实体名称的NSManagedObjectModel

...要么意味着您的托管对象模型尚未加载,要么拼写实体名称错误。听起来你的核心数据堆栈没有加载或者你没有错误地访问它。

答案 1 :(得分:0)

我有同样的问题。奇怪的是,在iOS 5上我遇到了问题,在iOS 6上我没有。

一些挖掘发现,在iOS 6上,当我期望它时,上下文似乎存在,当在iOS 5上它是空的(因此错误消息)。在我的情况下,我通过segue给出了上下文。一个解决方法是测试上下文是否为零,如果是,那么具体请求它。诀窍。

这一定是苹果公司所知道的,因为iOS6已经改变了。