这一个有我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];
}