我无法理解 [[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
时,我重新启动应用程序,数据就在那里。我错过了什么?
最佳答案
必须调用[context saveNestedContexts]
关于ios - MagicalRecord -- saveinBackground 不持久保存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410213/