我注意到当Xcode生成一个带有核心数据的模板时,这一行:
[self saveContext];
将所有对象保存到数据库的插入“applicationWillTerminate:”。
这个方法不应该在“applicationDidEnterBackground:”里面调用,特别是如果我们要保存大量数据吗?例如,如果保存所有内容需要0.5秒,但系统在0.4秒后因某种原因杀死应用程序,是否可能不会保存所有数据? 或者是ACID属性保证数据将被保存,无论发生什么事情?
提前致谢!
答案 0 :(得分:1)
如你所说,在去往后台时保存数据是危险的,因为它可能需要花费太多时间,特别是如果你同时做图形的东西。如果您的应用程序在bg中被系统杀死,则会调用“将终止”方法,从而保存数据。如果没有,那么也许你可以在下次启动时进行保存,但通常你应该在每次涉及删除/插入数据的重要操作之后处理保存。