Я пытаюсь заполнить UITableView
данными, которые я получаю с помощью вызова DataTaskWithURL
. Тем не менее, рабочий стол загрузился до того, как начался обработчик завершения .Завершение обработчика слишком поздно
Я искал эту проблему и нашел вещи о перемещении ее в основную нить, но это, похоже, не работало. Любая идея о том, как я могу переместить ее в нужную очередь перед загрузкой таблицы?
Мой код:
var jsonData: JSON = []
func getRequestForTableView() {
let urlPath = "[URL]"
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
let json = JSON(data: data)
println(json.count)
self.jsonData = json
})
task.resume()
}
Reload представление таблицы в конце обработчика завершения (но делать перезарядку на основном потоке). – rmaddy
... и показать представление прогресса при получении данных или дать некоторые другие отзывы, чтобы пользователь знал, что что-то происходит. – Antonio
Предположим, что 'self.jsonData' - ваш источник данных. Вызывает 'dispatch_async (dispatch_get_main_queue()) {self.tableView.reloadData()}' в последней строке этого 'completeHandler'. – sikhapol