将Core Data XML存储同步到磁盘

时间:2013-11-14 14:48:09

标签: xml cocoa core-data

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

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

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

1 个答案:

答案 0 :(得分:0)

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