将核心数据 XML 存储同步到磁盘



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

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

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

好吧,我的错 - 问题实际上不是由存储类型引起的,而是由托管对象上下文的组织方式引起的 - 记录已保存到子存储中,但磁盘上的文件仅在保存父存储时更新。如果您只正确管理它,XML 存储似乎也会几乎立即同步到磁盘。

最新更新