iPhone:核心数据错误:+ entityForName:找不到实体名称'Name'的NSManagedObjectModel

时间:2010-01-03 04:20:29

标签: iphone core-data

  

可能重复:
  insertNewObjectForEntityForName:

见标题^

导致此问题的代码:

NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];

    Name *name = (Name *)[NSEntityDescription insertNewObjectForEntityForName:@"Name" inManagedObjectContext:context];

    Feature *feature = (Features *)[NSEntityDescription insertNewObjectForEntityForName:@"thing" inManagedObjectContext:context];
    [feature setName:app];  
    [name addFeaturesObject:feature];

app是之前定义的NSString。

我尝试过的事情:

在viewDidLoad中:

 if (managedObjectContext == nil)
{ 
    managedObjectContext = [(IsidoreAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}

2 个答案:

答案 0 :(得分:2)

您的托管对象上下文可能未设置,实体“名称”显然对nil上下文无效。

在viewDidLoad中,您通过使用app delegate为视图控制器设置“managedObjectContext”实例变量,但是您的问题代码正在使用来自获取结果控制器的托管对象上下文。那已经安装好了吗?

另外,请查看this answerCore Data and UITabBar Controller - help?!

答案 1 :(得分:0)

我遇到了同样的问题。我使用“基于导航的应用程序”和“使用核心数据”选项在xCode4中创建了一个单独的项目。然后我将具有持久数据的表视图复制到我的其他应用程序。这是我遇到这个问题的时候。我已经将实体和所有字段一起定义,然后使用 + entityForName:找不到实体名称为“名称”的NSManagedObjectMode 错误

好的是它很容易修复: 如果您正在使用与我相同的路径,请在实例化控制器的位置将此行添加到App委托:

yourViewController.managedObjectContext = self.managedObjectContext;