У меня есть приложение, в котором источник данных для UITableView обновляется фоновым потоком с удаленного сервера каждые 30 секунд.
Авария возникает, если пользователь прокручивает tableView или если tableView находится в процессе reloadTableView:
. Причиной аварии является то, что количество строк в таблице во время сбоя не совпадает с количеством строк в момент начала перерисовывания.
Другая ошибка возникает, когда запрашиваемая ячейка TableView выходит за пределы диапазона, потому что между тем, как вызывается время numberofTableViewCells:
и вызывается время cellfForRowAtIndexPath
, датамодель изменилась и ячейка больше не существует.
Данные для tableView обновляются из фонового потока. Хотя данные загружаются с сервера, пользователь все равно должен взаимодействовать с табличным представлением, но прямо сейчас, что приводит к сбою.
Как заблокировать tableView от прокрутки или перезагрузки при обновлении tableViewDataSource? Какова наилучшая практика для такого рода ситуаций?
Спасибо.