重新加载数据后调用ScrollToRow时会导致崩溃。我必须把这个代码写进去
DispatchQueue.main.async
但是,为什么?
当我进入主队列时,为什么要说切换到主队列?
self.tableView.reloadData()
print(Thread.current). // It is main
self.tableView.scrollToRow(at: indexPathToScroll, at: .top, animated: false)
print(Thread.current). // It is main
错误是:
_ crollingtorowindexpath的内容偏移量:at滚动位置:usingpresentationvalues::
第(20)行超出第(0)节的界限(20)。
问题是这样解决的:
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
print(Thread.current). // It is main
self.tableView.scrollToRow(at: indexPathToScroll, at: .top, animated: false)
print(Thread.current). // It is main
})
当我打印第一个代码时,它在主线程中运行。为什么?
DispatchQueue.Main.Async
与众不同?