NSFetchedResultsController和UITableViewCell

时间:2010-10-22 03:10:36

标签: iphone uitableview nsfetchedresultscontroller

我有一个UITableViewController使用NSFetchedResultsController获取对象A的集合。

这很有效,如果这些objet A的属性更新,A的UITableViewCell会反映这种变化。

问题:此对象具有关系A-> [B1,B2,B3 ...]。单元格在其显示中使用了一些B的属性。如果我更新其中一个B的属性,则UITableViewCell不会反映更改。

如何在更新其中一个B时更改单元格,而无需重新加载整个tableview。有没有办法标记要更新的对象?

2 个答案:

答案 0 :(得分:2)

您可以注册NSManagedObjectContextObjectsDidChangeNotification并检查NSUpdatedObjectsKey词典中的userInfo值。如果其中一个更新的对象是B1,B2,B3等,则按照其反向关系确定哪个A对象已“更改”。您可以通过在NSFetchedResultsController的{​​{1}}数组中找到它来确定“已更改”A的索引。然后,最后,在fetchedObjects上致电reloadRowsAtIndexPaths:withRowAnimation:

答案 1 :(得分:0)

我会尝试詹姆斯回答。 我还发现使用refreshObject:mergeChanges:on A会触发重新加载此对象。这样做可以吗?