У меня есть приложение, основанное на панели вкладок и данных, полученных из Интернета. Главная вкладка показывает карту, а одна из других вкладок показывает инциденты вокруг центральной точки карты, отображаемой с помощью UITableView
. Если пользователь перемещает карту, а затем переходит на страницу инцидентов, мне нужно обновить список инцидентов, отображаемый в таблице. Для этого я запрашиваю инциденты в viewWillAppear:animated:
, и когда это завершается (асинхронно), я вызываю метод reloadData
табличного представления.
Это прекрасно работает, если пользователь быстро не нажимает на вкладки (например, отображает инциденты, перемещается на карту, перемещает карту, возвращается к инцидентам, возвращается к карте и т. Д.). В какой-то момент источник данных об инцидентах (NSArray
) изменяется, когда табличное представление пытается получить к нему доступ.
Вот вопрос, который похож:
Сбой UITableView при обновлении источника данных во время прокрутки
Одно из решений этого вопроса описывает решение на высоком уровне, которое именно то, что я хочу: заморозить источник данных во время обновления таблицы. Однако я не могу понять, когда нужно разморозить источник данных. Проблема в том, что я не могу найти способ получить уведомление, когда таблица обновляется.
Есть идеи? Как заморозить источник данных во время обновления таблицы, а затем разморозить его после обновления таблицы?