2010-10-22 3 views
1

У меня есть UITableViewController, получающий набор объектов A с NSFetchedResultsController.NSFetchedResultsController и UITableViewCell

Это хорошо работает, и если эти свойства объекта Ajet обновляются, UITableViewCell for A отражает изменение.

Проблема: У этого объекта есть отношение A -> [B1, B2, B3 ...]. Ячейка использует некоторые из свойств B в своем дисплее. Если я обновляю одно из свойств B, UITableViewCell не отражает изменения.

Как я могу изменить смену ячеек, когда я обновляю один из B, не перезагружая всю таблицу. Есть ли способ отметить объект для обновления?

ответ

0

Я попробую Джеймс ответить. Я также обнаружил, что использование refreshObject: mergeChanges: on A приведет к перезагрузке этого объекта. Это нормально?

2

Вы можете зарегистрироваться на NSManagedObjectContextObjectsDidChangeNotification и изучить значение NSUpdatedObjectsKey в словаре userInfo. Если один из обновленных объектов - B1, B2, B3 и т. Д., То следуйте его обратной зависимости, чтобы определить, какой объект «изменился». Вы можете определить индекс «измененного» A, найдя его в массиве NSFetchedResultsControllerfetchedObjects. И затем, наконец, позвоните reloadRowsAtIndexPaths:withRowAnimation: на UITableView.

Смежные вопросы