這個問題很少出現,並且時斷時續,但是非常令人不安。核心數據/ SQLite存儲偶爾數據丟失
我有一個使用CoreData與sqlite持久性存儲的應用程序,並且[大部分時間]完美工作。但是,我偶爾會收到我無法找到的數據丟失報告。
當核心數據項改變,我們與呼叫持續到以下:各地是否考慮到內容的保存,一旦這種方法被調用,是
- (void) saveContext
{
if ([context hasChanges])
{
NSError *error = nil;
if (![context save:&error])
{
NSLog(@"Failed to save context: %@", error);
[self displayValidationError:error];
}
}
}
我的問題中心最終,或者它可能被緩存,並可能會丟失。
我們不確定,但是當一系列的項目輸入後,應用程序停止後,似乎會出現此問題。如果應用程序被用戶強行終止,我們肯定會導致數據丟失。看起來這發生在用戶離開應用程序一段時間並且可能使用該設備用於其他事情時發生。
我從AppDelegate(applicationwillTerminate和applicationWillResignActive)調用saveContext。
所以,我的問題:
- 從AppDelegate中調用足以確保持久性?
- 當調用saveContext(如上所示)時,是否還有其他要求保證所有未保存的實體都刷新到磁盤?
- 我可以忽略一些可能導致這種情況的東西嗎?
TIA對於該主題的任何幫助。我已經能夠發現很少,這似乎與我的問題類似。