Почему бы просто не вызвать tableView.reloadData () после заполнения данных?Он заново заполнит всю таблицу (технически он будет воссоздавать только те клетки, которые видны).
Дело в том, что ваш метод tableView: cellForRowAt: должен иметь возможность доступа к вашим данным, чтобызаполните каждую ячейку таблицы соответствующим образом на основе этих данных.Каждый раз, когда ваши данные изменяются, просто вызовите reViewData () tableView снова.Это эффективно в том смысле, что будут создаваться только видимые ячейки, а остальные будут создаваться всякий раз, когда они собираются стать видимыми, если вообще когда-либо.
Кроме того, tableView: numberOfRowsInSection: аналогичным образом должен анализировать ваши данные, чтобы судитьсколько строк должно существовать.Он также будет вызываться снова при каждом вызове reloadData ().
Ваши данные всегда должны быть готовы к опросу методами делегата tableView, даже если они еще ничего не содержат.Когда данных нет, ваш tableView: numberOfRowsInSection: решит, что должно быть 0 строк.