将 Core Data XML 存储同步到磁盘

Posted

技术标签:

【中文标题】将 Core Data XML 存储同步到磁盘【英文标题】:syncing a Core Data XML store to disk 【发布时间】:2013-11-14 14:48:08 【问题描述】:

我在我的 OSX 应用程序中使用带有 XML 存储的 Core Data。我注意到一个问题,有时当我在 Xcode 中终止应用程序时,上次会话期间创建的一些数据在重新启动后会丢失。

我使用 opensnoop 来检查文件访问,我注意到磁盘上的文件在更改后实际上并没有更新,即使我在托管对象上下文中调用 save: - 它只是同步到磁盘当应用程序正常退出时。如果它突然被杀死,它根本无法保存文件。

无论如何,我可能会切换到 SQLite 存储,但我想知道 - 是否有任何方法可以强制将 XML 存储立即同步到磁盘?我没有看到任何相关类中的任何方法可以做到这一点,核心数据指南文档似乎也没有提到这一点。

【问题讨论】:

【参考方案1】:

好吧,我的错 - 问题实际上不是由存储类型引起的,而是由托管对象上下文的组织方式引起的 - 记录保存到子存储中,但磁盘上的文件仅在父商店也被保存。如果您管理得当,似乎 XML 存储也几乎可以立即同步到磁盘。

【讨论】:

以上是关于将 Core Data XML 存储同步到磁盘的主要内容,如果未能解决你的问题,请参考以下文章

Core-Data:想要将新的 web xml 内容持久保存到我的数据存储中,而不是替换现有的

将图像添加到 Core Data 需要很长时间

Core Data 持久化存储异步保存

在 iOS 7 中禁用 Core Data 中的 iCloud(也就是将持久存储文件迁移到本地)

如何将 NSMutableString 转换为 double 以存储在 Core Data 中?

如何将 Core Data 与引用的文件同步?