Отключите анимацию UITableView с NSFetchedResultsController, когда изменяется много строк - PullRequest
2 голосов
/ 16 февраля 2011

В моем UIView у меня есть UITableView (UITV), который управляется NSFetchedResultsController (NSFRC). UIView находится внутри UINavigationController.

Когда представление должно быть загружено / отображено, я запускаю некоторые фоновые операции, которые извлекают данные с удаленного сервера (JSON) и анализируют в Core Data.

NSFRC вызывается, когда синтаксический анализ завершен, а многопоточный NSManagedObjectContext объединен с основным контекстом.

Проблема в том, что иногда в базовые данные вставляется много строк одновременно, добавляется много ячеек таблицы, и имеется довольно большая задержка от фактического извлечения и анализа до тех пор, пока строки не будут отображены.

Теперь мне интересно, знает ли кто-нибудь какое-либо решение, например:

  • подключить счетчик к какому-то «извлеченному контроллеру результатов, вставившему все свои строки за это время» (или что-то), вызову уведомления / делегата, чтобы хотя бы сказать пользователю, что «что-то скоро появится»?

Или, возможно, лучшим решением будет просто не инициализировать NSFRC до тех пор, пока не завершится фоновая загрузка и обработка?

Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2011

Если я правильно понимаю ваш вопрос, вы можете обратиться к NSFetchedResultsControllerDelegate методам, с документацией, доступной здесь: http://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsControllerDelegate_Protocol/Reference/Reference.html

Существуют методы делегата, доступные для предварительных изменений с controllerWillChangeContent:, postменяется с controllerDidChangeContent и при изменениях с didChangeSection: и didChangeObject.

Надеюсь, это поможет!Рог

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