據UIManagedDocument的文檔中簡單地提到,UIManagedDocument,後臺線程和
支持異步數據寫入父上下文,核心數據實際使用一對嵌套的管理對象上下文。
這是特定於UIManagedDocument或核心數據總是這樣做嗎?
同一份文件還指出,
如果合適的話,你可以從後臺線程直接加載數據到父上下文。
這是否意味着,在下面的代碼
NSManagedObjectContext *moc = self.managedObjectContext;
[moc performBlock:^() {
Record *record = [NSEntityDescription
insertNewObjectForEntityForName:@"Record"
inManagedObjectContext:moc];
}];
我應該簡單地替換第一線由
NSManagedObjectContext *moc = self.managedObjectContext.parentContext;
來實現這一目標?
我想我也很困惑它會直接使用這個父上下文是「合適的」。我的意思是,這聽起來像performBlock是用來卸載任務到後臺隊列。爲什麼我需要混淆父上下文?
如果有人爲我澄清這一切,我將不勝感激。