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

发布于 2024-12-09 02:00:09 字数 484 浏览 0 评论 0 原文

当我尝试构建我的核心数据应用程序时(大多数代码来自 CoreDataBooks 示例),我收到错误

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

因此,阅读后,我找到了可能的原因(请参阅 这个旧的堆栈溢出问题):

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

我的问题是,如何判断哪些原因导致了错误,以及如何修复它。我在调试和核心数据方面经验很少,所以这都是新的。

When I try to build my Core Data App, which most code is coming from CoreDataBooks example, I get the error

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

So, after reading, I found the possible causes(See This Older Stack Overflow Question):

  • Nil managed object context object.
  • Failure to add the model containing the entity to the persistent store the context uses.
  • Failure to add the correct persistent store to the context itself.

My question is, how can I tell which of these causes the error, and how can I fix it. I have little experience in debugging and core data, so this is all new.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千紇 2024-12-16 02:00:09

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

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

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

Most likely, it is the managedObjectContext coming up nil. The way I go about solving this is either to pass the managedObjectContext to the view controller in question from the previous (if it is navigation-based) or to declare the context explicitly in the viewDidLoad like follows:

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

This will get the context created in your app delegate file and apply it to the view in which you are using it. There are many ways to go about assigning the context, but this is probably the most direct

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文