已解决:这与 UITableViewDiffableDataSource 无关。问题是从 2 个不同的线程顺序访问领域并且没有得到一致的结果
其中一个线程是主线程,并且滚动以某种方式使主线程忙并触发了竞争条件
如果用户在更新发生时不滚动表格视图,则一切正常。
如果用户正在滚动或只是用手指在 tableview 上,则更新时不会发生动画并且不会显示差异。我在控制台中没有收到任何错误
数据更新代码如下:
var snapshot = tableViewDataSource.snapshot()
snapshot.deleteAllItems()
snapshot.appendSections([.conversation])
snapshot.appendItems(conversationList, toSection: .conversation)
tableViewDataSource.apply(snapshot)
这是某种预期的行为吗?