0
我在uiview控制器上使用两个按钮的选项卡栏来显示两个不同的tableview。如果正常使用,一切正常。使用两个表格和应用程序崩溃时出现竞态条件
但问题出现时,我滚动一个tableview,并立即点击按钮切换到第二个tableview。
我想由于竞争条件occor作为一个tableview不完成其过程,我开始了第二个过程。
有没有解决这个问题的方法。
@IBOutlet var tableViewCase: UITableView!
@IBOutlet var tableViewInsp: UITableView!
@IBOutlet var tabBar: UITabBar!
var selectedTableView:UITableView!
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem)
{
if item.tag == TAB_BAR_CASES {
app?.settings.lastSelectedInboxTab = ACTIVITY_KIND_CASE
selectedTableView = tableViewCase
presenter.refresh()
self.view.bringSubview(toFront: tableViewCase)
showSelectedTableView()
}
else if item.tag == TAB_BAR_INSP {
app?.settings.lastSelectedInboxTab = ACTIVITY_KIND_INSP
selectedTableView = tableViewInsp
presenter.refresh()
self.view.bringSubview(toFront: tableViewInsp)
showSelectedTableView()
}
refreshTable(selectedTableView)
}
请将相关的代码添加到这个问题。 – joern
发生这种情况的原因是,在滚动正在进行时您正在更改数据源数组,因此它将尝试访问数据行中的数据源数组,导致崩溃 –
@jon Snow。是的,现在正在发生。有没有解决方案来处理这种情况。 –