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自动创建的
    会让事情变得清楚;-)