Swift UITableView reloadData() UI 行为

Mar*_*eon 1 uitableview swift

我们正在通过 REST 调用加载数据:

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
    //Update data store….
    self.tableView.reloadData()
})
task.resume()
Run Code Online (Sandbox Code Playgroud)

然而,网格中的数据并未显示。您必须单击模拟器中的网格 - 执行此操作时会显示数据。我们在这里缺少什么让数据在没有任何 UI 交互的情况下自动加载?

ang*_*dev 5

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()
Run Code Online (Sandbox Code Playgroud)