UICollectionView: сбой утверждения в - [UICollectionView _endItemAnimations]
Я получаю эту ошибку в своем приложении:
*** Ошибка подтверждения в -[UICollectionView _endItemAnimations]
,/SourceCache/UIKit/UIKit-2372/UICollectionView.m:2801
Это происходит в моем методе -controllerDidChangeContent:
в этой строке:
[self.collectionView performBatchUpdates:^{...}];
Кто-нибудь знает, что вызывает это? Мой код тесно связан с https://gist.github.com/4440c1cba83318e276bb, и я в недоумении.
Спасибо!
Ответы
Ответ 1
Эти типы утверждений выбрасываются как исключения. Оберните обновления пакета в try/catch и дайте описание исключения. Он точно скажет вам, что вам не нравится в вашем звонке.
Другими словами:
@try
{
[self.collectionView performBatchUpdates:^{...}];
}
@catch (NSException *except)
{
NSLog(@"DEBUG: failure to batch update. %@", except.description);
}
Ответ 2
Держу пари, потому что ваш
-controllerDidChangeContent
вызывается в фоновом потоке несколько раз, и executeBatchUpdates все еще работает, когда другой поток вызывает его, поэтому он приводит к некорректному поведению.
Решение - попробуйте обернуть его в @synchronized или с помощью NSLocks
Ответ 3
Проблема заключалась в том, что делегат FRC не установил нуль в представлении didDisappear.