我在我的应用程序中使用了 Core Data,并发现了模拟器的一些奇怪行为:当我在我的应用程序中向 Core Data 添加一些数据并立即使用 XCode 中的“停止”按钮(或只需按 Cmd-Q)退出模拟器时,下次启动模拟器时,数据不会存储在数据库中。经过一些测试,我发现数据存储到磁盘:
- 如果我按下主页按钮,立即。(几乎 -如果退出速度非常快,可以在存储数据之前退出应用程序。)
- 如果我在添加数据后让应用程序运行一段时间(至少大约 20 秒)。
调用 [NSManagedObjectContext save:] 没有帮助。行为是相同的。
所以我的问题是:这种行为的原因是什么?有没有办法在退出之前强制刷新到磁盘?在设备上运行时,我是否有可能以这种方式丢失数据(就我个人而言,我没有看到任何风险,除了强制关闭,但奇怪的行为让我有点困扰)