Загрузка одного элемента асинхронно в TableViewCell после загрузки другого элемента в Swift - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел бы загрузить табличное представление с комбинацией синхронных и асинхронных (удаленных) данных.Синхронные данные загружаются немедленно.Как я могу получить асинхронные данные для загрузки, когда они будут готовы?Положить ли что-нибудь в cellforRow или в viewwill появится?

Сейчас я устанавливаю значение метки в ячейке таблицы, но данные не обновляются

Вот мой код cellforRow:

internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath)
        let row = indexPath.row
        cell.textLabel?.text = Places[row].name
                Utilities.shared.getWeather(query: Places[row].name as NSString) { (response1) in
                    print(response1)
                   DispatchQueue.main.async  {
                    cell.detailTextLabel?.text = response1
                    }          
        }

        return cell
    }

1 Ответ

0 голосов
/ 22 декабря 2018

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

...