這一個有我batty。在applicationWillTerminate中,我做了兩件事:將一些設置保存到應用程序設置plist文件,並將更改後的數據更新到managedObjectContext中引用的SQLite數據庫。問題有時候有效,而不是其他問題。模擬器和設備上的問題都是相同的。如果我在應用程序運行時點擊主頁按鈕,我有時只能將數據存儲在plist中並存儲到CoreData存儲中。看起來,這兩個工作或兩者都不工作,如果我切換執行順序(saveState,managedObjectContext或managedObjectContext,saveState)沒有區別。 我無法弄清楚如何發生這種情況。任何幫助是極大的讚賞。 lqapplicationWillTerminate看起來不一致
AppDelegate.m
@synthesize rootViewController;
- (void)applicationWillTerminate:(UIApplication *)application {
[rootViewController saveState];
NSError *error;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
// Handle error
abort(); // Fail
}
}
}
RootViewController.m
- (void)saveState {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:self.someInteger forKey:kSomeNumber];
[userDefaults setObject:self.someArray forKey:kSomeArray];
}