2014-10-20 62 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

相關問題