UITableView Проблемы с рисованием при вызове ReloadData - PullRequest
5 голосов
/ 24 июня 2009

У меня довольно большой список «предметов» (до 250 записей), который постоянно меняется. Список отображается в UITableView.

У меня есть поток опроса, который загрузит некоторые новые записи и вставит их в базу данных SQLite.

Когда поступают новые записи, я вызываю мой объект источника данных табличного представления, чтобы обновить его набор данных, который выполняет SQL-запрос и возвращает новый массив записей.

После этого я вызываю -reloadData в табличном представлении. Когда это происходит, примерно в 7 из 10 случаев табличное представление отображается пустым (ячейки не отображаются, а виден только фоновый цвет таблицы), пока не будет выполнен последующий вызов -reloadData. Прикосновение к представлению таблицы (прокрутка, выделение ячейки, все, что приведет к перерисовке), заставит его снова появиться.

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

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

Любая помощь по этому вопросу была бы офигенной, спасибо.

1 Ответ

19 голосов
/ 24 июня 2009

Поможет ли вам сделать [ myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]?

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

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