NSFetchedResultsController监视对正在跟踪的整个托管对象的更改。每当在当前上下文中修改任何属性时,例如
– controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
被调用。这当然会影响连接到FRC的UITableView的性能,如果这些更改经常发生。
是否可以跟踪某些属性?我需要这样做以利用FRC来进行那些在时间上更零星的更改,而不必在每次频繁更改属性时都接收通知。
答案 0 :(得分:1)
不,你不能。
如果您需要更精细的颗粒观察,只需将属性分离到不同的实体。
答案 1 :(得分:1)
我将假设您使用更改类型NSFetchedResultsChangeUpdate调用此委托方法,因为对基础对象的更改与您显示数据的方式无关。这是对的吗?
如前面的答案所述,无法配置FRC以使其忽略某些属性。
我的第一个问题是,性能瓶颈究竟是什么?更新只会发生在当前可见的单元格中,所以我想知道更新发生的频率或单元格的复杂程度,以便导致性能问题?
为了忽略不影响细胞显示方式的变化,我会让细胞变得更聪明。即当您收到更改通知并重新配置单元格时,单元格本身可以检查是否有任何相关值实际更改。如果没有,您可以忽略更新。