问题描述
升级到iOS 14后,出现以下错误。我正在使用一个名为MessageKit的库来构建。
正在准备在
更新可见视图时,在当前数据模型中找不到{length = 2,path = 25-0},并且不在更新动画中
有人知道这个错误是什么意思吗?崩溃指向集合视图上的方法scrollToBottom
。无论出于何种原因,看起来当运行动画或其他内容时,模型中的最后一项都不再存在。我想知道是否可能是由于键入指示符引起的,但我不确定。
func insertMessage(_ message: NewMessageModel) {
// Reload last section to update header/footer labels and insert a new one
dispatchQueue.main.async {
self.isPerformingBatchUpdates = true
self.messagesCollectionView.performBatchUpdates({
self.messages.append(message) //The messages object can only be modified on the main thread
self.checkLastMessageSent(message: message)
self.messagesCollectionView.insertSections([self.messages.count - 1])
if self.messages.count >= 2 {
self.messagesCollectionView.reloadSections([self.messages.count - 2])
}
},completion: { [weak self] _ in
self?.messagesCollectionView.scrollToBottom(animated: true)
self?.isPerformingBatchUpdates = false
})
}
}
解决方法
使用下面的功能,它将正常工作。
value2 = NumberSystem_ Binary (Number 101)
,
根据 MessageKit
的新变化,您现在需要使用 scrollToLastItem()
而不是使用 scrollToBottom(animated:)
:
func insertMessage(_ message: NewMessageModel) {
DispatchQueue.main.async {
self.isPerformingBatchUpdates = true
self.messagesCollectionView.performBatchUpdates({
self.messages.append(message)
self.checkLastMessageSent(message: message)
self.messagesCollectionView.insertSections([self.messages.count - 1])
if self.messages.count >= 2 {
self.messagesCollectionView.reloadSections([self.messages.count - 2])
}
},completion: { [weak self] _ in
self?.messagesCollectionView.scrollToLastItem() // Use it instead of using `scrollToBottom(animated:)`
self?.isPerformingBatchUpdates = false
})
}
}