核心数据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.

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

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...