2014-10-20 64 views
0

我注意到,当Xcode中生成具有核心数据模板检查,这条线:我们应该使用哪一种方法,用于存储我们CoreData对象

[self saveContext]; 

节省所有对象到数据库中,插入内部“applicationWillTerminate: ”。

不应该在“applicationDidEnterBackground:”里面调用这个方法,特别是如果我们有很多数据要保存的话?例如,如果保存所有内容需要0.5秒,但系统在0.4秒后因某种原因而终止应用程序,是否有可能不保存所有数据? 或者它是ACID属性保证数据将被保存无论发生什么?

提前致谢!

回答

1

正如你所说的,当去背景时保存数据是很危险的,因为它可能需要很多时间,特别是如果你同时做图形的东西。如果您的应用程序在bg中被系统杀死,那么会调用“将终止”方法,从而保存数据。如果没有,那么也许你可以在下次启动时进行保存,但通常你应该在每次涉及删除/插入数据的重要操作之后处理保存。

+0

谢谢你的建议 – ppalancica 2014-10-20 22:53:09

+0

只是可以肯定(我的英文有时是近似的)。无论发生什么,您的数据都是安全的。如果应用程序处于活动状态或bg状态,则会保留数据并执行任何保存操作。如果你的应用程序在任何保存操作之前被杀死,那么将会调用“将终止”,因此在终止之前保存日期。 :-) – 2014-10-21 06:48:41

相关问题