Ошибка утверждения в - [UICollectionView _createPreparedCellForItemAtIndexPath: withLayoutAttributes: applyAttributes:]
Я получил эту ошибку с IOS 7. Он отлично работает в IOS 6.
Я смотрю по сети, и я нашел это:
http://forums.xamarin.com/discussion/8233/ios-7-crash-in-collectionview
Однако решение не имеет смысла
Я понял это. Я неправильно использовал CollectionView.RegisterClassForCell. По-видимому, я должен был использовать CollectionView.RegisterNibForCell при настройке viewcontroller. Это поставило проблему. iOS 6, должно быть, был более прощающим.
Может ли кто-нибудь из вас дать мне подсказку об этой ошибке
Симптомы:
- Краш
- Ошибка утверждения в - [UICollectionView _createPreparedCellForItemAtIndexPath: withLayoutAttributes: applyAttributes:]
- Работает в IOS6, а не в IOS 7
Код, с которым я с подозрением отношусь:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize sz = [BGCollectionViewCellImage defaultSize];
return sz;
}
Но это кажется слишком обычным.
sz - это просто CGSize 100 * 120
Другим является следующее:
- (BGCollectionViewCellImage *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
BGCollectionViewCellImage * cell = [[BGCollectionViewCellImage alloc]init];
Image * img= self.arImages[indexPath.row];
[cell setImg:img andIndex:indexPath.row+1];
return cell;
}
Может быть, я должен использовать dequeue что-то вроде UITableViewCell
У меня есть еще один намек. Если я попытался вывести из строя какую-то ячейку, я получил следующее:
2013-10-14 21:18: 34.346 имя домена [24667: a0b] * Завершение приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: "не может удалить вид вида: UICollectionElementKindCell с идентификатором BGCollectionViewCellImage - должен зарегистрировать ниб или класс для идентификатора или подключить прототип ячейки в раскадровке ' * Первый стек вызовов броска: (
Похоже, я сначала что-то зарегистрировал.