我们正在通过 REST 调用加载数据:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
//Update data store….
self.tableView.reloadData()
})
task.resume()
但网格中的数据未显示。您必须单击模拟器中的网格 - 执行此操作时会显示数据。在没有任何 UI 交互的情况下让数据自动加载,我们缺少什么?
最佳答案
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()
关于Swift UITableView reloadData() UI 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239271/