gpt4 book ai didi

ios - 核心数据 viewContext 未使用 NSFetchedResultsController 从 newBackgroundContext() 接收更新

转载 作者:IT王子 更新时间:2023-10-29 07:51:31 26 4
gpt4 key购买 nike

在我的应用程序中,我有一个 NSFetchedResultsController 用于在 UITableView 中加载核心数据对象。与此 FRC 关联的提取请求使用可用于 NSPersistentContainer (iOS10) 的新 viewContext 属性。

当我选择一个单元格时,我将核心数据对象传递给一个新的 ViewController。这个新的 VC 仍然使用 viewContext。从这个 ViewController 中,我可以更新以模态方式呈现的 ViewController 中的核心数据对象。为此,我将 newBackgroundContext() 用于模态 ViewController。我可以毫无问题地保存更新的核心数据对象。

问题是 FRC 不会自动更新来自后台上下文的更新核心数据对象。就好像 viewContext 没有接收和处理核心数据对象更新。

如果我将 viewContext(应用程序范围)的 automaticallyMergesChangesFromParent 设置为 true,当我保存背景上下文时,FRC 将获得更新的核心数据对象。据我了解,viewContext 应该自动管理数据合并。该文档描述了 viewContext:“此上下文被配置为生成并自动使用来自其他上下文的保存通知。”

您能否阐明如何使用 NSFetchedResultsController 处理不同的上下文?

最佳答案

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

我同意文档在这一点上令人困惑,“......并自动使用来自其他上下文的保存通知。”

关于ios - 核心数据 viewContext 未使用 NSFetchedResultsController 从 newBackgroundContext() 接收更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com