首页 > 解决方案 > 方法 tableView.reloadData() 不起作用

问题描述

我是开发 iOS 应用程序的新手。我的故事是我已经完成了处理来自 API 的新数据,这些数据通过套接字 IO 通知,每次套接字成功时我想重新加载 tableview。并且套接字工作正常。问题是当我第一次登录我的应用程序时,方法 tableview.reload 不起作用但是当我重新运行我的项目时一切都很好。所以我想问一下为什么 tableview 没有在这里第一次重新加载?先感谢您!!

注意 1:对于 tableview.reloadData() 不起作用我的意思是它不调用 cellForRowAtIndexPath 我已经打印并在方法 cellForRowAtIndexPath 上设置了一个断点

注意 2:tableview 渲染 tableViewCell 一次,我尝试调用 tableview.reloadData() 再次渲染单元格以更新 UI,但它不起作用。

这是我的代码

 override func viewDidLoad() {
   super.viewDidLoad() 
   ....................
   ChatSocketManagerOnline.shared.lastMessageOn { (data) in
   self.data = data            
   self.tableView.reloadData()
 }

标签: iosswift

解决方案


try

override func viewDidLoad() {
   super.viewDidLoad() 
   ....................
   ChatSocketManagerOnline.shared.lastMessageOn { [weak self] (data) in
        DispatchQueue.main.async {
            self?.data = data            
            self?.tableView.reloadData()
        }
   
 }

推荐阅读