Ios 当viewContext.automaticallyMergesChangesFromParent设置为true时,viewContext指的是哪个父级?
通常有后台上下文来执行写操作Ios 当viewContext.automaticallyMergesChangesFromParent设置为true时,viewContext指的是哪个父级?,ios,swift,core-data,Ios,Swift,Core Data,通常有后台上下文来执行写操作 // Set automaticallyMergesChangesFromParent to true persistentContainer.viewContext.automaticallyMergesChangesFromParent = true persistentContainer.performBackgroundTask { backgroundcontext in // Do your work... let object = ba
// Set automaticallyMergesChangesFromParent to true
persistentContainer.viewContext.automaticallyMergesChangesFromParent = true
persistentContainer.performBackgroundTask { backgroundcontext in
// Do your work...
let object = backgroundContext.object(with: restaurant.objectID)
backgroundContext.delete(object)
// Save changes to persistent store, update viewContext and notify fetched results controller
try? backgroundContext.save()
}
我对来自家长的自动更改消息感到困惑
如前所述,我对viewContext
(与主队列关联的托管对象上下文)和backgroundContext
有以下观察
viewContext.parent
为零
backgroundContext.parent
为零
我的问题是
如果我们需要设置viewContext.automaticallyMergesChangesFromParent=true
,以便viewContext
接收来自backgroundContext
的更改,这是否意味着backgroundContext
是viewContext
的父项
如果不是,则viewContext.automaticallyMergesChangesFromParent=true
所指的父对象是什么
如果父项为零,则为零,不存在隐式父关系。当父上下文为nil时,
automaticallyMergesChangesFromParent
自动合并保存到其持久存储协调器的更改。它不是一个父上下文,但它做了一些类似于这里的父上下文。只要两个上下文使用相同的持久存储协调器(或相同的NSPersistentContainer
),那么这将自动合并更改,而无需父上下文关系。谢谢。我现在明白了automaticallyMergesChangesFromParent
在这种情况下,暗示viewContext
正在从持久存储协调器而不是父上下文获取最新更改。也许,如果他们有一个详细的命名,比如从Parentor或PersistentStoreCoordinator自动创建的会让事情变得清楚;-)