이 사람은 저를 배앓게합니다. 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];
}