2

我一直在研究 Xcode 教程,无法解决这个问题。教程在这里

我得到的错误是:

+entityForName:找不到实体名称“联系人”的 NSManagedObjectModel

在这一行(我已将目的地更改为联系方式):

Contact *contact = (Contact *)[NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:managedObjectContext];

我很确定问题是因为我没有完成第 11 点,因为我不确定如何使用 Xcode 4.3.2 和故事板来完成。有人知道吗?

4

2 回答 2

1

您可以将上下文传递给下一个视图控制器,就像在斯蒂芬斯的回答中一样。但是,您还必须记住通过添加将上下文属性添加到新视图控制器

@property(nonatomic,retain) NSManagedObjectContext *context;

到你的头文件和

@synthesize context;

到你的实现文件。

您可以执行以下操作来检查是否获得上下文:

在您的 viewdidload 中:

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

如果这没有帮助。尝试重置您的模拟器,因为当您使用 Coredata 时,它似乎会出现很多错误。

我希望这有帮助!

于 2012-06-19T14:07:11.440 回答
0

假设实体存在,您似乎更有可能从第 10 点中遗漏以下内容:

enterDataViewController.managedObjectContext = self.managedObjectContext;

在应用程序委托中未正确设置该或您的 managedObjectContext 。

于 2012-06-19T13:39:53.217 回答