Имеет ли ваша функция надлежащий блок завершения? Похоже, что происходит то, что вы вызываете cellForRow
синхронно, тогда как процесс, отправляемый для скачивания, асинхронен. Я подозреваю, что ваш код выглядит примерно так:
// ...
[self downloadMethod];
[self cellDelegateCall];
// ...
система не знает, как долго downloadMethod
собирается принять, так это будет просто выполнить cellDelegateCall
сразу. Вам понадобится надлежащий блок завершения:
// ...
[self downloadMethodWithCompletion:^(BOOL successful) {
if (successful) {
[self cellDelegateCall];
}
}];
// ...
Знакомство с написанием собственных блоков может сбить с толку вначале. This website - отличный ресурс. Даже после нескольких лет написания блоков, я все же время от времени проверяю его. Надеюсь это поможет!
Упрощенная таблица reloadData метод для обновления таблицы – Shashi3456643
После извлечения данных вам необходимо перезагрузить данные таблицы в блоке async. Я рекомендую опубликовать ваш код, если у вас все еще есть проблемы. –
вы либо сделаете запрос раньше, либо вы вызываете 'reloadTableView' в блоке завершения для запроса –