核心数据模板:运行之间不持久的数据
Posted
技术标签:
【中文标题】核心数据模板:运行之间不持久的数据【英文标题】:Core Data template: Data Not Persisted Between Runs 【发布时间】:2011-09-19 08:57:22 【问题描述】:我使用 Core Data 模板(在 Lion 10.7 和 Xcode 4 上)创建了一个小型测试 Mac 应用程序。我使用这个站点上的示例http://www.swampfoetus.net/chapter-7-fail/,将所有 Cocoa 绑定与一个 tableview、一个 NSArrayController、一个文本框和一个添加按钮连接起来。 NSArrayController 链接到 App Delegate 的 managedObjectContext。
当我启动应用程序时,一切似乎都运行良好......我可以输入文本并按添加,它会保存在 tableview 中。我保存了几行,然后在文件菜单中按保存(链接到 saveAction IBAction)并退出应用程序。我可以看到数据保存在 xml 数据文件中(我将其重命名为 .xml ... PSC 的类型为 NSXMLStoreType)。
问题是,当我再次启动应用程序时,它启动时没有上次运行时保存在 Core Data 文件中的数据。
每次都会发生这种情况......我可以添加数据并且它会一直附加到数据文件中,但在启动时它似乎永远不会从这个数据文件中读取。
有什么想法可以在这里出错吗?我根本没有弄乱 App Delegate 生成的代码,只设置了似乎工作正常的绑定。我可以检查什么以确保其设置正确?
【问题讨论】:
【参考方案1】:如果数据显示在持久存储中,那么唯一的解释是绑定问题,即 UI 由于某种原因不显示以前的数据。很难说为什么会发生这种情况,但我的猜测是 fetch 谓词或其他一些绑定限定符导致控制器忽略旧对象以便不显示它们。
我不能肯定地说,因为我无法访问这本书。
这是使用绑定的缺点之一。当他们工作时,他们很棒,但当他们不工作时,他们是@#%!调试。
【讨论】:
是的,这真的很令人困惑......不确定它是否与 Lion 和 AutoSave 有关,尽管模板似乎没有建议,我也在 10.6 机器上尝试过,同样的问题。以上是关于核心数据模板:运行之间不持久的数据的主要内容,如果未能解决你的问题,请参考以下文章