@olga_08

Как дождаться выполнения сетевого запроса и только потом выполнять последующий код?

В didSelectRow посылается запрос к серверу (с помощью Alamofire), и в ответе приходит текст для ячейки, но что нужно сделать, чтобы дождаться ответа и только потом выпонять отрисовку ячейки?

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if let cell = tableView.cellForRow(at: indexPath) as? AMHistoryTableViewCell {
            if let selectedPath = selectedPath {
                if selectedPath.section == indexPath.section, selectedPath.row == indexPath.row {
                    self.selectedPath = nil
              }
            } else {
                self.selectedPath = indexPath
                let item = self.items[(self.tableView.indexPath(for: cell)?.row)!]
                if item.show == true {
                    let model = ReceiptRequestModel()
                    model.transactionId = item.id
                    Net.shared.request(requestType: .his(type: .receipt), model: model, completionHandler: {(error, json) in
                        if error == nil, let json = json {
                            if let resultModel = Mapper<ReceiptResponseModel>().map(JSON: json) { cell.descLabel = resultModel.desc
                            }
                        }
                    })
                }
            }
            toggleCell(cell, animated: true)
        }
    }
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
@belenerd
В Alamofire есть completionHandler который как раз и предназначен для выполнения какого-либо кода после выполнения сетевого запроса. Выполняйте отрисовку ячейки в этом блоке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы