我无法理解[[NSManagedObjectContext defaultContext] save]
和[[NSManagedObjectContext defaultContext] saveInBackground]
之间的差异。
当我使用save
功能时,它可以正常工作,但saveInBackground
永远不会保留数据。简而言之,这就是区别:
// Save in background.. DOES NOT WORK
[[NSManagedObjectContext defaultContext] saveInBackgroundErrorHandler:^(NSError *error){
NSLog(@"FAILED TO SAVE!! Task: %@", task);
}completion:^(void){
NSLog(@"PERSISTED NEW TASK: %@", task);
}];
// Save in main thread.. WORKS
[[NSManagedObjectContext defaultContext] save];
每次saveInBackground
运行,我都会看到" PERSISTED NEW TASK"日志条目。但是,当我重新启动应用程序时,数据不存在。当我使用save
时,我重新启动应用程序并且数据就在那里。我错过了什么?
答案 0 :(得分:1)
不得不致电[context saveNestedContexts]