出现这个情况的原因是:没有使用 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才会显示。

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!