Atualização inválida: número inválido de itens na seção 0.
Recentemente, recebi o seguinte erro:
Exceção fatal: NSInternalInconsistencyException Atualização inválida: número inválido de itens na seção 0. O número de itens contidos em uma seção existente após a atualização (13) deve ser igual ao número de itens contidos nessa seção antes da atualização (12), mais ou menos o número de itens inseridos ou excluídos dessa seção (0 inserido, 0 excluído) e mais ou menos o número de itens movidos para dentro ou para fora dessa seção (0 foi inserido, 0 foi removido).
O erro ocorre no seguinte código no meu cliente tvOS:
let removedIndexPaths = removedIndexes.map({ IndexPath(row: $0, section: 0) })
let addedIndexPaths = addedIndexes.map({ IndexPath(row: $0, section: 0) })
let updatedIndexPaths = updatedIndexes.map({ IndexPath(row: $0, section: 0) })
self.collectionView?.performBatchUpdates({
self.collectionView?.deleteItems(at: removedIndexPaths)
self.collectionView?.insertItems(at: addedIndexPaths)
}, completion: { _ in
guard let collectionView = self.collectionView else {
return
}
for indexPath in updatedIndexPaths {
if let myCell = collectionView.cellForItem(at: indexPath) as? MyCollectionViewCell {
let item = self.dataManager.items[indexPath.row]
myCell.updateUI(item)
}
}
let collectionViewLayout = self.collectionViewLayoutForNumberOfItems(self.dataManager.items.count)
if collectionViewLayout.itemSize != self.collectionFlowLayout.itemSize {
collectionView.setCollectionViewLayout(collectionViewLayout, animated: false)
}
})
Estou usando apenas uma seção na minha exibição de coleção:
override func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
Fiz check-out de duas postagens sobre o mesmo tópico, mas elas não resolveram o meu problema, acho que o problema está nas duas linhas a seguir, mas não tenho certeza:
self.collectionView?.deleteItems(at: removedIndexPaths)
self.collectionView?.insertItems(at: addedIndexPaths)
Por favor ajude.