Реализовать делегаты для контроллера извлеченных результатов Core Data или нет - PullRequest
2 голосов
/ 01 июня 2010

В чем преимущество реализации четырех методов делегата:

  • (void) controllerWillChangeContent: (NSFetchedResultsController *) controller

  • (недействительный) контроллер: (NSFetchedResultsController *) контроллер

  • (недействительный) контроллер: (NSFetchedResultsController *) контроллер didChangeObject: (id) anObject atIndexPath: (NSIndexPath *) indexPath forChangeType: (NSFetchedResultsChangeType) тип newIndexPath ** * * * * * 101In * * 101P

  • (void) controllerDidChangeContent: (NSFetchedResultsController *) controller

вместо орудия:

  • (void) controllerDidChangeContent: (NSFetchedResultsController *) контроллер

Любая помощь приветствуется //:)

1 Ответ

3 голосов
/ 10 июня 2010

Когда вы используете FetchedResultsController с табличным представлением, вы можете реализовать эти четыре метода делегата, чтобы реагировать на каждое изменение, внесенное в выбранные вами результаты, и анимировать изменения по мере их появления в вашей таблице. Однако, как NSFetchedResultsControllerDelegate документация заявляет:

Может быть в вычислительном отношении дорого анимировать все изменения. Вместо того, чтобы отвечать на изменения по отдельности (как показано в «Типичном использовании»), вы можете просто реализовать controllerDidChangeContent: (который отправляется делегату после обработки всех ожидающих изменений), чтобы перезагрузить табличное представление

Так что, если вы делаете кучу изменений, вы можете просто реализовать controllerDidChangeContent и ответить на все сразу, используя что-то вроде [self.tableView reloadData].

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