3

NSFetchedResultsController 监视对正在跟踪的整个托管对象的更改。例如,每当在当前上下文中修改任何属性时

– controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:

被调用。如果更改真的频繁发生,这当然会影响连接到 FRC 的 UITableView 的性能。

是否可以只跟踪某些属性?我需要这个来利用 FRC 来处理那些在时间上更加零星的更改,而不必在每次修改频繁更改的属性时都收到通知。

4

2 回答 2

1

不,你不能。
如果您需要更细粒度的观察,只需将属性分离到不同的实体即可。

于 2013-05-13T07:31:15.750 回答
1

我将假设您正在使用更改类型 NSFetchedResultsChangeUpdate 调用此委托方法,因为对基础对象的更改与您显示数据的方式无关。它是否正确?

正如前面的答案所说,无法配置 FRC 以使其忽略某些属性。

我的第一个问题是,性能瓶颈到底是什么?更新只会发生在当前可见的单元格上,所以我想知道更新发生的频率或单元格的复杂程度是否会导致性能问题?

为了忽略不影响单元格显示方式的更改,我会让单元格更智能。即,当您收到更改通知并重新配置单元格时,单元格本身可以检查是否有任何相关值实际上已更改。如果没有,您可以忽略更新。

于 2013-05-13T09:13:59.823 回答