核心数据iOS10:viewContext未通过NSFetchResultController从newBackgroundContext()接收更新

前端之家收集整理的这篇文章主要介绍了核心数据iOS10:viewContext未通过NSFetchResultController从newBackgroundContext()接收更新前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我有一个NSFetchResultController在UITableView中加载Core Data对象.
与此FRC关联的提取请求使用NSPersistentContainer(iOS10)可用的​​新的viewContext属性.

当我选择一个单元格时,我将Core Data对象传递给一个新的ViewController.这个新的VC仍然使用viewContext.
从这个ViewController,我可以从ModControlers中更新Core Data对象.为此,我使用newBackgroundContext()作为模态ViewController.我可以保存更新Core Data对象没有任何问题.

问题是FRC没有使用后台上下文中的更新Core Data对象自动更新.
就好像viewContext没有被接收和处理Core Data对象的更新.

如果我为viewContext(app wide)自动设置MergesChangesFromParent为true,当我保存背景上下文时,FRC将获取更新的Core Data对象.从我的理解来看,viewContext应该自动管理数据的合并.该文档描述了viewContext与:“这个上下文被配置为代数,并自动消耗来自其他上下文的保存通知.

你能澄清一下如何使用NSFetchResultController处理不同的上下文?

谢谢,
阿克塞尔

解决方法

你看到正确的行为.如果您希望您的viewContext自动从其他上下文(包括由newBackgroundContext()创建的上下文)中获取更改,则必须将“automaticMergesChangesFromParent”自动设置为true.

我同意文件在这一点上令人困惑,“…并自动消耗来自其他上下文的保存通知”.

原文链接:https://www.f2er.com/iOS/329246.html

猜你在找的iOS相关文章