Я пытаюсь загрузить данные из API в мой TableViewController, но при первой загрузке данные возвращаются пустыми. Я не могу построить таблицу, потому что данные пусты.
import UIKit
import Kanna
class TableViewController: UITableViewController {
var country = [String]()
override func viewDidLoad() {
super.viewDidLoad()
gets()
print(country)// is empty view controller.
}
func gets(){
let url = "https://site"
let myURL = NSURL(string: url)
let URLTask = URLSession.shared.dataTask(with: myURL! as URL) {
myData, response, error in
guard error == nil else {return}
let myHTML = String(data: myData!, encoding: String.Encoding.utf8)
DispatchQueue.global(qos: .userInitiated).async {
if let doc = try? HTML(html: myHTML!, encoding: .utf8) {
DispatchQueue.main.async {
for fdata in doc.xpath("//*[@id='content']/table[3]") {
let i = fdata.text!
self.country.append(i)
}
}
}
}
}
URLTask.resume()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return country.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = country[indexPath.row]
return cell
}
Я знаю, что есть много подобных проблем. Я пробовал разные варианты, но мне это не удалось.