我们正在通过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 - Swift UITableView reloadData()UI行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36239271/

10-13 03:57