Различия в обновлении ячеек по протоколу NSFetchedResultsControllerDelegate? - PullRequest
1 голос
/ 19 января 2012

Я просматривал ссылку на протокол NSFetchedResultsControllerDelegate и некоторые примеры кода в Интернете и заметил две разные реализации для обновления UITableViewCell при вызове:

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
    atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
    newIndexPath:(NSIndexPath *)newIndexPath {

Кто-нибудь может объяснить два разных подхода?

Это:

// ONE
case NSFetchedResultsChangeUpdate:
[self configureCell:[tableView cellForRowAtIndexPath:indexPath]atIndexPath:indexPath];
break;

OR

// TWO
case NSFetchedResultsChangeUpdate:
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;

1 Ответ

0 голосов
/ 19 января 2012

Как следует из имен селекторов, в случае, если ОДНА ячейка сконфигурирована в пользовательском методе (не API Apple) и, скорее всего, будет обновлена, когда произойдет перезагрузка табличного представления.

В ДВУХcase reloadRowsAtIndexPaths: - это метод UITableView, в котором у вас есть эффект анимации «бесплатно».Как и где обновляется ячейка?Не могу сказать без кода.

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