ios - 当 viewContext.automaticallyMergesChangesFromParent 设置为 true 时,viewContext 指的是什么父级?
问题描述
有后台上下文来执行写操作是很常见的。
// 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()
}
我对automaticallyMergesChangesFromParent
.
因为,我对viewContext
(与主队列关联的托管对象上下文)和backgroundContext
.
viewContext.parent
是零backgroundContext.parent
是零
我的问题是
- 如果我们需要设置
viewContext.automaticallyMergesChangesFromParent = true
,以便viewContext
接收来自的更改backgroundContext
,这是否意味着backgroundContext
是父级viewContext
? - 如果不是,那么父母
viewContext.automaticallyMergesChangesFromParent = true
指的是什么?
解决方案
如果 parent 为 nil,则为 nil,没有隐式的父关系。当父上下文为 nil 时,automaticallyMergesChangesFromParent
自动合并保存到其持久存储协调器的更改。它不是父上下文,但它在这里做了一些类似于父上下文的事情。只要两个上下文使用相同的持久存储协调器(或相同的NSPersistentContainer
),那么这将自动合并更改而无需父上下文关系。
推荐阅读
- c - C中的N体模拟
- security - 如何检测作弊引擎?
- flutter - 如何在 FLUTTER 中将设备置于静音状态?
- javascript - 如何使用 js 或 jquery 在两个 css 文件之间切换?
- apache-nifi - PrometheusReportingTask 未在 NiFi 中发出指标
- asp.net - 以编程方式重新启动 .NET Web 应用程序的最快方法
- javascript - jQuery.animate(...) 无法正常工作
- c - 如何通过使用 getchar 按下箭头键来避免阅读奇怪的符号?
- database - Linux服务器中PERL代码中的文件扩展名类型
- javascript - 带有 $.getJSON() 的 canvasJS 出现 CORB 错误