2013-11-21 3 views
1

У меня возникла проблема: я должен часто перезагружать данные в виде таблицы иногда очень часто. Поэтому я вызываю realoadData до того, как закончена предыдущая операция в режиме реального времени и исключение индекса из пределов. Насколько я знаю, нет способа определить, завершена ли перезагрузка данных или нет.Как избежать состояния гонки в UITableView reloadData?

Я мог бы поставить задержку перед перезагрузкой, но я думаю, что это уродливый путь.

Может ли кто-нибудь помочь мне с этим?

+0

Вы должны проверить NSoperations. – Woodstock

ответ

0

«Фаза перезагрузки» не перекрывается с другими, и она выполняется только на основном потоке.

Возможно, вы сталкиваетесь с тем, что отправляете сообщения reloadData быстрее, чем , их можно обработать и, таким образом, получить в очереди в цикле выполнения. Нет причин отправлять такие сообщения быстрее, чем частота обновления дисплея. Так что да, ограничение максимальной частоты обновления на что-то вроде display_frequency/N будет ключевым.

Смотрите также: CADisplayLink

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