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才会显示。

 

posted on 2017-02-07 16:35  锅仔排骨  阅读(496)  评论(0编辑  收藏  举报