Ich verwende UICollectionView performBatchUpdates(_:completion:)
Methode. Das Problem ist, dass manchmal meine komplexe Diff-Logik fehlschlägt und eine falsche Anzahl von einzufügenden Abschnitten zurückgibt. Dies führt zu einer Diskrepanz zwischen der Anzahl der Elemente, die ich einfüge, und der Anzahl, die von der Datenquelle gemeldet wird. Jedes Mal, wenn das passiert, bekommen wir die folgenden Fehler:Abfangen einer UICollectionView Chargenaktualisierung fehlgeschlagen in Swift?
Assertion failure in -[CollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:]
Error when performing batch updates: Invalid update: invalid number of sections. The number of sections contained in the collection view after the update (25) must be equal to the number of sections contained in the collection view before the update (19), plus or minus the number of sections inserted or deleted (0 inserted, 0 deleted).
Mir ist klar, dass die richtige Lösung meiner diffing Logik zu beheben ist, so dass es keine Fehlanpassung zwischen der Anzahl der Elemente zurückgegeben und die Anzahl der Einfügungen Ich nenne .
Allerdings, was ich tun möchte, ist es so, dass auch wenn meine Logik in der Zukunft fehlschlägt, anstatt die App zu kollidieren, wird es einfach die Daten der Sammlungsansicht neu laden.
Wie kann ich dies in Swift tun?