见标题^
导致此问题的代码:
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];
}
答案 0 :(得分:2)
您的托管对象上下文可能未设置,实体“名称”显然对nil上下文无效。
在viewDidLoad中,您通过使用app delegate为视图控制器设置“managedObjectContext”实例变量,但是您的问题代码正在使用来自获取结果控制器的托管对象上下文。那已经安装好了吗?
另外,请查看this answer至Core Data and UITabBar Controller - help?!
答案 1 :(得分:0)
我遇到了同样的问题。我使用“基于导航的应用程序”和“使用核心数据”选项在xCode4中创建了一个单独的项目。然后我将具有持久数据的表视图复制到我的其他应用程序。这是我遇到这个问题的时候。我已经将实体和所有字段一起定义,然后使用 + entityForName:找不到实体名称为“名称”的NSManagedObjectMode 错误
好的是它很容易修复: 如果您正在使用与我相同的路径,请在实例化控制器的位置将此行添加到App委托:
yourViewController.managedObjectContext = self.managedObjectContext;