核心数据应用程序的问题 -

时间:2011-10-09 16:20:56

标签: iphone objective-c ios core-data nsmanagedobject

当我尝试构建我的Core Data App时,大多数代码来自CoreDataBooks示例,我收到错误

'+entityForName: could not locate an NSManagedObjectModel for entity name 'Child''

因此,在阅读之后,我找到了可能的原因(见This Older Stack Overflow Question):

  • 无管理对象上下文对象。
  • 未能将包含实体的模型添加到上下文使用的持久性存储中。
  • 未能将正确的持久存储添加到上下文本身。

我的问题是,如何判断哪些错误导致错误,以及如何解决错误。我在调试和核心数据方面经验不足,所以这是全新的。

1 个答案:

答案 0 :(得分:0)

最有可能的是,managedObjectContext出现了nil。我解决这个问题的方法是将managedObjectContext传递给前面的视图控制器(如果它是基于导航的)或者在viewDidLoad中显式声明上下文,如下所示:

- (void)viewDidLoad {
    if (managedObjectContext == nil) {
        managedObjectContext = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
    }
}

这将获取在您的app委托文件中创建的上下文,并将其应用于您正在使用它的视图。有很多方法可以分配上下文,但这可能是最直接的