如何知道NSFetchedResultsChangeUpdate更改哪些属性?
我认为有一个controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
的问题controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
专门为NSFetchedResultsChangeUpdate
:它不会告诉你什么样的变化导致此NSFetchedResultsChangeUpdate
。
我有一个非常复杂的实体。 只有一部分数据被用来填充我的表格视图单元格。 我不想更新我的单元格以进行任何不相关的属性更改 – 这是浪费资源。 那么如何才能知道哪些属性更改导致此NSFetchedResultsChangeUpdate
以便我可以避免更新我的表视图单元格,如果它是不相关的?
NSManagedObject有两个方法。 首先返回一个字典,其中包含自上次获取或保存对象以来已更改的键和(新)值(此操作可高效实现,而不会触发关系错误)
- (NSDictionary *)changedValues;
第二:
- (NSDictionary *)changedValuesForCurrentEvent NS_AVAILABLE(10_7, 5_0);
你可以通过NSFetchedResultsController来调用NSFetchedResultsChangeUpdate通知
您可以将分配给单元格的值与已更改的NSManagedObject中的属性值进行比较。 假设您在自定义单元格上使用了3个标签,并且您有对象更新,则可以向您的单元格子类中添加一个方法,并通过NSManagedObject询问单元是否需要更新。 单元格将validationNSManagedObject的值,并将它们与标签的值进行比较。 如果不相等,则需要更新。 您可以从您在问题上发布的委托方法的索引path访问单元格。