我们正在通过REST调用加载数据:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
//Update data store….
self.tableView.reloadData()
})
task.resume()
然而,未显示网格中的数据。您必须在模拟器中单击网格 - 当您执行此操作时,将显示数据。我们在这里缺少什么来让数据在没有任何UI交互的情况下自动加载?
答案 0 :(得分:4)
reloadData()
方法必须在主线程中运行。 dataTaskWithRequest(_ request: NSURLRequest)
在后台线程中运行:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
dispatch_async(dispatch_get_main_queue(),{
//Update data store….
self.tableView.reloadData()
})
})
task.resume()
答案 1 :(得分:2)
在后台线程上调用完成处理程序。您必须在主线程/队列上调用reloadData
。