Вопрос по iphone, objective-c – UITableView Проблемы с рисованием при вызове ReloadData

5

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

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

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

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

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

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

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

Ваш Ответ

1   ответ
19

[ myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO] ?

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

Error: User Rate Limit Exceeded Jasarien

Похожие вопросы