如何处理必须在swift中完成的网络请求

时间:2018-02-15 09:32:57

标签: ios swift networking request

所以我现在卡住了,因为我正在开发的应用程序正在处理网络请求,而且我对它很新。 应用程序需要首先加载一些数据才能正常工作。所以我尝试在AppDelegate中执行网络请求。但是,据我所知,网络请求是异步运行的,这就是我的表视图无法正确加载的原因。所以我尝试在网络请求完成后重新加载tableview,这有效,但给了我以下消息:

  

UITableView.reloadData()必须仅在主线程中使用

我的问题是如何妥善处理这种情况。什么是行业标准?

1 个答案:

答案 0 :(得分:0)

它告诉你该怎么做,在主线程上做:

DispatchQueue.main.async {
    // also put here the manipulation of the data model of the tableView
    self.tableView.reloadData()
}

所有与UI相关的操作都应该在主线程上完成。在这种特殊情况下,网络调用的回调在后台线程上执行,因此您需要将reloadData分派给主线程。