如何解决iOS 14致命异常:在当前数据模型中找不到NSInternalInconsistencyExceptionException路径
升级到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
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。