objective-c - Core Data 何时刷新到磁盘?

标签 objective-c core-data ios5

我在我的应用程序中使用了 Core Data,并发现了模拟器的一些奇怪行为:当我在我的应用程序中向 Core Data 添加一些数据并使用 XCode 中的“停止”按钮退出模拟器时(或者只需按 Cmd-Q )立即,下次启动模拟器时数据不会存储在数据库中。经过一些测试,我发现数据存储在磁盘上:

  • 如果我按下主页按钮,立即。 (几乎 - 如果退出速度非常快,有可能在存储数据之前退出应用程序。)
  • 如果我在添加数据后让应用程序运行一段时间(至少大约 20 秒)。

调用 [NSManagedObjectContext save:] 没有帮助。行为相同。

所以我的问题是:这种行为的原因是什么?有没有办法在退出前强制刷新到磁盘?在设备上运行时,是否存在以这种方式丢失数据的任何风险(就个人而言,我没有看到任何风险,除了强制关闭,但奇怪的行为让我有点困扰)

最佳答案

在 Xcode 中使用停止按钮停止模拟器可能与用锤子砸碎 iPhone 一样(但保留 SSD)。基本上,您的应用程序和其他所有内容都会停止。没有合理的方法可以确保在发生这种情况时保存数据。

关于objective-c - Core Data 何时刷新到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428351/

相关文章:

objective-c - 将 NSDate 转换为其他格式

ios - 如何通知父 View Controller 有关模态视图 Controller 中屏幕方向的更改?

objective-c - 在 Mac OS X 应用程序中检测多点触控手势或鼠标拖动

ios - CoreData - 安全检查 CoreData 对象的值

iphone - 涉及新实体和一对多关系的核心数据迁移

iphone - 如何防止Core Data中出现 "SQL Injection"?

ios - 如何在 Swift 中替换 UISplitViewController 中的 Detail?

objective-c - 在 UITabBarController 中监听 View Controller 的编程更改

ios - 从 iPhone 中的 UIBarButtonItem 呈现弹出框

ios - 声明字段/变量的位置之间的差异