所以我UITableView
与UIViewController
相关联(包括delegate
和datasource
)。
@IBOutlet weak var chatTableView: UITableView!
当我尝试从网络服务异步获取某些数据后调用chatTableView.reloadData()
时,它会调用cellForRowAtIndexPath
但不会同时调用numberOfSections
和numberOfRowsInSection
。当我尝试从@IBAction
(不是异步)调用它时,两个方法都执行得很好。
我尝试使用reloadData()
和DispatchQueue.main.async
来调用OperationQueue.main.addOperation
,但没有成功。
ChatRepository.list {
log, error in
// bunch of code
self.log = log
self.isInputHidden = true
DispatchQueue.main.async {
// This won't call numberOfSections and numberOfRowsInSections
self.chatTableView.reloadData()
}
}
@IBAction func back(_ sender: Any?) {
// This will call the complete flow of methods
chatTableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
let sections = log.count + (isInputHidden ? 1 : 2)
return sections
}
关于为什么两种方法都没有被调用的任何想法?