核心数据持久存储协调器不存在

Posted

技术标签:

【中文标题】核心数据持久存储协调器不存在【英文标题】:Core data persistent store coordinator isnt present 【发布时间】:2012-02-03 02:17:39 【问题描述】:

我正在阅读 Apple Doc 的 Core Data Tutorial for ios 教程,当我按下 + 按钮向我的 tableView 添加事件时,应用程序崩溃并且控制台状态:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.' 我已经阅读了很多教程次,我找不到任何地方的教程说有关商店的任何信息。那么有没有我应该添加它没有显示的代码?

【问题讨论】:

【参考方案1】:

您应该使用 Xcode 的 Master-Detail 模板创建一个新项目,选择“使用核心数据”以获取当前工作示例。一旦您面前有一个工作项目,请在该项目中搜索 NSPersistentStoreCoordinator - 结合工作代码示例来理解文档比在尝试从零开始创建工作代码时理解它们要容易得多。

【讨论】:

嘿,我仍然无法让本教程工作,我已经创建了主从应用程序,但我无法继续!因为他们使用 FetchedResultsController,它与教程完全不同!请帮忙!【参考方案2】:

您一定忘记添加持久存储。请参阅 the docs 了解如何创建持久存储。


编辑

创建持久存储后,通过如下调用跟进:

NSPersistentStoreCoordinator *persistentStoreCoordinator = /* Assume this exists */;
NSURL *storeURL = /* ... */;

[persistentStoreCoordinator addPersistentStoreWithType: NSSQLiteStoreType
                                         configuration: nil
                                                   URL: storeURL
                                               options: nil
                                                 error: NULL];

【讨论】:

感谢您的回复,您能帮我解决这个问题吗?我以前从来没有做过!!再次感谢! :D,核心数据教程中没有说明如何做到这一点! 您能帮我添加持久存储吗?你给了我一个指向方法标题的链接。我不确定在方法的主体中输入什么!谢谢 希望有帮助。不要忘记使用您自己的 PSC 并提供您自己的商店 URL。 :) @AlexsanderAkers 我得到了这个错误:NSInvalidArgumentException',原因:'+entityForName: nil is not a legal NSManagedObjectContext parameter @Coder101 这可能值得一个单独的 SO 问题。

以上是关于核心数据持久存储协调器不存在的主要内容,如果未能解决你的问题,请参考以下文章

是否可以创建自定义核心数据持久存储协调器?

持久存储协调器核心数据错误:NSSQLiteErrorDomain = 522

重置存储时核心数据崩溃:“无法从此 NSManagedObjectContext 的协调器访问对象的持久存储”

核心数据:无法将持久存储添加到协调器

无需迁移即可替换核心数据模型

使用两个持久存储协调器进行高效后台更新的陷阱