【问题标题】:'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name'NSInternalInconsistencyException',原因:'+entityForName:找不到实体名称的 NSManagedObjectModel
【发布时间】:2011-05-14 06:17:11
【问题描述】:

我有一个基于窗口的应用程序,其中集成了标签栏和导航栏。导航栏上有一个自定义按钮,用于打开表格视图。

单击表格的单元格时,我想打开一个新的表格视图控制器。但是只要我点击第一个表格的单元格,我就会得到一个异常

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'AddForm''

我检查了AddForm 的位置是否正确。

我已经尝试了上面和其他线程上给出的所有解决方案,但仍然卡住了。我希望有人可以帮助我。

流程是这样的

ListButton(点击打开一个列表视图)->一个表格视图打开->(点击一个单元格应该打开一个新的表格视图控制器并从核心数据中获取数据)

我的根视图控制器代码在第二个表视图控制器文件中......这是我做错了吗?我这样做是因为在此之前我不需要核心数据....

请帮忙

提前致谢

【问题讨论】:

    标签: core-data tabbar nsmanagedobjectcontext viewcontroller navigationcontroller


    【解决方案1】:

    如果创建了 managedObjectContext,我曾经遇到过同样的问题,首先检查你的 AppDelegate.m 类

    如果它被创建,检查它是否作为参数传递 像这样的

     MasterViewController *controller = (MasterViewController *)masterNavigationController.topViewController;
        controller.managedObjectContext = self.managedObjectContext;
    

    如果这对您的主视图是正确的,请确保您将其传递给您的视图,类似于这样

    self.detailViewController.managedObjectContext = self.managedObjectContext;
    

    至少这对我有用 =)

    【讨论】:

    • 我遇到了完全相同的错误,这是因为我试图从尚未设置的对象管理上下文中获取实体。确保设置您正在创建的任何视图控制器的托管对象上下文属性。
    【解决方案2】:

    此问题的最常见原因是实体名称拼写错误或大写错误。检查AddForm 在代码和数据模型编辑器中的拼写是否完全相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 2012-07-20
      • 2011-10-29
      • 2012-06-20
      • 2010-12-31
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多