NSFetchedResultsController и UITableViewCell - PullRequest
1 голос
/ 22 октября 2010

У меня есть UITableViewController, извлекающий коллекцию объектов A с NSFetchedResultsController.

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

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

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

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

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

0 голосов
/ 23 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...