ios - 方法 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()
}
解决方案
try
override func viewDidLoad() {
super.viewDidLoad()
....................
ChatSocketManagerOnline.shared.lastMessageOn { [weak self] (data) in
DispatchQueue.main.async {
self?.data = data
self?.tableView.reloadData()
}
}
推荐阅读
- javascript - 测试变量类型或抛出 TypeScript 的函数?
- python - 通过单词后面的第二个元音从字符串中获取子字符串
- javascript - 任何 php 请求都返回 502 Bad Gateway
- c++ - 如何在 C++ 中声明抽象类的向量列表?
- arrays - 反应数组的显示对象
- c - 每次调用多次的函数的堆栈帧是否不同?
- ios - 我将如何获得此功能以停止重复问题?
- java - Elasticsearch 排除包含特定术语的文档
- android - 滚动另一个recyclerview时实现recyclerview持有者视图大小更改
- java - 将 JTable 添加到 JFreeChart ChartPanel