Я надеюсь, что это сработает.

ользуюURLSession получить данные из API ресурса для данных таблицы. Так что мне нужноreloadData() после данных, подготовленных задачей URLSession. Но это приведет к

UITableView.reloadData () должен использоваться только из основного потока

И когда я запускаю приложение, при начале просмотра таблицы ничего не отображается. Только после того, как я прокручиваю экран, данные будут показываться. Но если не позвонитьreloadData() в задаче URLSession весь экран пуст.

func getData() {
    let dataUrl = URL(string: "http://www.example.com/app/?json=1")
    let task = URLSession.shared.dataTask(with: dataUrl! as URL) {data, response, error in
        guard let data = data, error == nil else { return }
        do {
            self.data = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
            self.tableView.reloadData()
            }

        } catch let error {
            print(error)
        }
    }
    task.resume()
}

Ответы на вопрос(4)

Ваш ответ на вопрос