在我的应用程序中,我有一个NSFetchResultController在UITableView中加载Core Data对象.
与此FRC关联的提取请求使用NSPersistentContainer(iOS10)可用的新的viewContext属性.
与此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.
我同意文件在这一点上令人困惑,“…并自动消耗来自其他上下文的保存通知”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。