Как заполнить UItableview после извлечения данных с помощью функции? - PullRequest
0 голосов
/ 18 апреля 2020

У меня проблемы при заполнении ячеек моего табличного представления:

Я хотел бы заполнить ячейки, как только функция Fetch () закончила работать, затем arrayComponents заполняется информацией, которую я хотел бы отобразить в моих ячейках:

var arrayComponents:Array<String> = Array(repeating: "", count: 4)

func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return arrayComponents.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let  cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath)

    cell.textLabel!.text = arrayComponents[indexPath.row]

    cell.imageView!.image = image

    return cell
}

func fetch(jan: String){

                    self.fetchAll { result in
                        switch result {
                        case .failure(let error):
                            print(error)

                        case .success(let values):
                            self.arrayData = values

                            self.arrayComponents = ["\(self.arrayData[1])","\(self.arrayData[2])","\(self.arrayData[3])","\(self.arrayData[4])"]

                        }
                    }
                }

        case .failure(let error):
            print("\(error) in fetch")
        }
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    fetch(jan: dataFromFirst)

    tableView.dataSource = self
    tableView.delegate = self

}

}

Как я могу загрузить табличное представление после завершения fetch () и возврата значений?

1 Ответ

0 голосов
/ 18 апреля 2020

Перезагрузить таблицуПросмотреть данные после извлечения

   func fetch(jan: String){

        self.fetchAll { result in
        switch result {
        case .failure(let error):
              print(error)

        case .success(let values):
             self.arrayData = values
             self.arrayComponents = ["\(self.arrayData[1])","\(self.arrayData[2])","\(self.arrayData[3])","\(self.arrayData[4])"]

                    }
                }
       //Reload data

       tableView.reloadData()

        }
...