NSFetchedResultsController 更改跟踪

Posted

技术标签:

【中文标题】NSFetchedResultsController 更改跟踪【英文标题】:NSFetchedResultsController change tracking 【发布时间】:2013-04-18 10:35:32 【问题描述】:

我知道 NSFetchedResultsController 跟踪来自 bg 上下文的更改(即合并更改)。

它是否也跟踪主上下文的变化?

即如果我有一个 NSFetchedResultsController 获取 Person 对象,并且我使用“编辑人员”视图来更改传入的实际 Person,控制器会看到更改吗?

【问题讨论】:

控制器将看到更改,即使它尚未持久化。 【参考方案1】:

获取的结果控制器跟踪其自身上下文中的更改。如果你保存 对背景上下文进行更改,然后将更改合并到主上下文 FRC 在主上下文上会看到这些变化(通常,见下文)。但是说它“从背景环境跟踪变化”是误导性的。

FRC 是否看到非持久性更改,取决于获取请求中includesPendingChanges 的设置。默认情况下,此值为YES除非 您将resultType 的值设置为NSDictionaryResultType。在这种情况下,FRC 返回 只有持久存储的状态,更改跟踪根本不起作用。

【讨论】:

以上是关于NSFetchedResultsController 更改跟踪的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 应用程序中调用 performFetch 后,是不是需要手动更新表视图?