UITableView数据不显示(在console中已显示相应数据)

出现这个情况的原因是:没有使用 DispatchQueue.main.async
TableView.reloadData()必须写在那个里面。

// Asynchronously reload the data and display on the tableview
DispatchQueue.main.async {
        // Reload the tableview
        self.searchResultTableView.reloadData()
}

顺便提一句我出现的错误现象:我的UIView上有一个Search button,从youtube API上根据用户在文本框中输入的关键字读取youtube返回的Json信息。点击Search button两次才会显示数据,更改关键词以后也是这样,第一次按下Search button,仍然是之前的搜索结果。但在console上,第一次点击Search后,就已经出现新的搜索结果。

DispatchQueue.main.async的意思是 异步。就是让reloadData()加载的数据异步更新到main thread上。不然tableView数据只会在后台准备好,下一次按button才会显示。

原文地址:https://www.cnblogs.com/guozai9527/p/6373055.html