我在一个标签控制器中有3个表视图,所有这些视图都填充如下:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.dataSource = self.notesTableView.bind(to: getQuery()) { tableView, indexPath, snap in
let cell = self.notesTableView.dequeueReusableCell(withIdentifier: "cellident", for: indexPath)
let customCell = cell as! TextCell
self.notesTableView.dataSource = self.dataSource
self.notesTableView.delegate = self
if let note = snap.childSnapshot(forPath: "note").value as! String? {
customCell.notesLabel.text = note
} else {
customCell.notesLabel.text = "Undefined"
}
return cell
}
}
当我在手机上运行应用程序并在标签之间切换时,在某些时候我总是遇到这个例外:
' NSInternalInconsistencyException',原因:'无效更新:第0部分中的行数无效。
此外,控制台显示了这一点,但我不确定如何解释这个:
***断言失败 - [UITableView _endCellAnimationsWithContext:],/ BuildRoot / Library / Cache / com.apple.xbs / Source / UIKit / UIKit-3600.7.47 / UITableView.m:1737
我的问题是,是否有人知道与FirebaseUI相关的此异常的原因可能是什么。我的猜测是它与填充表格有关。
答案 0 :(得分:0)
在viewWillDisappear
设置self.dataSource = nil
。
因此,您不能不正确地更新dataSource
。
来自这个问题 here
根据我的经验,最安全的方法是viewWillDisappear
设置self.dataSource.unbind()