JRV*_*JRV 4 core-data objective-c ios5
我在我的应用程序中使用Core Data,并发现了模拟器的一些奇怪的行为:当我在我的应用程序中向Core Data添加一些数据并使用XCode中的"stop"按钮退出模拟器时(或者只是按下Cmd-Q),下次启动模拟器时,数据不会存储在数据库中.经过一些测试,我发现数据存储到磁盘:
调用[NSManagedObjectContext save:]无效.行为是一样的.
所以我的问题是:这种行为的原因是什么?在退出之前有没有办法强制刷新到磁盘?当在设备上运行时,我是否有以这种方式丢失数据的风险(个人而言,我没有看到任何,除了强制关闭,但奇怪的行为困扰我一点)
使用Xcode中的停止按钮停止模拟器可能与使用锤子粉碎iPhone(但保留SSD)相同.基本上,你的应用程序和其他一切都停止了.没有合理的方法可以确保在发生这种情况时保存数据.
您可能正在使用嵌套上下文.如果您的上下文具有父上下文,则调用-save:将仅保存到该上下文,而不是文件系统.
嵌套上下文(通常)用于安全地在后台队列上使用上下文,并允许前台上下文保存而不必承担保存到文件系统的开销.保存到文件系统将在后台队列上进行,而不是阻塞主线程.
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |