Ошибка утверждения UICollectionView на устаревших данных

В ходе попытки разгрузить один пакет изображений от моего набора просматривают и затем заменяют их другим пакетом, я сталкиваюсь с ошибкой, где, в зависимости от того, была ли исходная или последующая группа изображений более или менее, чем намеченная замена, ошибка утверждения происходит, который говорит:

*** Assertion failure in -[UICollectionViewData validateLayoutInRect:], 
/SourceCache/UIKit_Sim/UIKit-2891.1/UICollectionViewData.m:341
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'UICollectionView recieved layout attributes for a cell with an 
index path that does not exist: <NSIndexPath: 0xb141c60> {length = 2, path = 0 - 2}

В этом случае существующий список количества изображений равнялся 5, и новый список количества изображений равнялся 2. Так, когда это добралось до третьего изображения - исключение произошло - указание, что UI CollectionViewDataDelegate не знал об изменении в потоке данных.

На какие-либо предложения о том, как удостовериться новые изображения, сошлется UICollectionView? Конечно, я назвал 'reloadData' …

Спасибо

60
задан 20 August 2013 в 19:26

1 ответ

В моем случае у меня было пользовательское UICollectionViewFlowLayout. После удаления ячеек от collectionView разрушенное приложение. Фиксация была к removeAll() ранее расчетные атрибуты. Так, первая строка после override func prepare() arrayHoldingYourAttributes.removeAll().

0
ответ дан 1 November 2019 в 09:42

Другие вопросы по тегам:

Похожие вопросы: