2010-01-03 69 views
0

Possible Duplicate:
insertNewObjectForEntityForName:iPhone:核心数据错误:+ entityForName:未能找到NSManagedObjectModel的实体名称 '名称'

见标题^

代码导致此:

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]; 

应用程序是一个NSString早先定义。

事情我已经尝试:

在viewDidLoad中:

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

回答

2

你的管理对象上下文可能没有设置与实体“名”显然是无效的零上下文。

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

此外,检查出this answerCore Data and UITabBar Controller - help?!

+0

它就在那里...... – 2010-01-03 16:52:27

0

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

的好处是它比较容易解决: 如果您正在沿着和我一样的路线工作,在您实例化控制器的位置将此线添加到您的应用代理:

yourViewController.managedObjectContext = self.managedObjectContext; 
相关问题