私はUICollectionView
自分のアプリの1つで実験しています。コレクション ビューに項目を追加すると、エラーが発生します。
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'must return a UICollectionViewLayoutAttributes instance from -layoutAttributesForItemAtIndexPath:
for path <NSIndexPath 0x10486f40> 2 indexes [0, 0]'
コレクション ビューにアイテムを追加して更新する方法は次のviewWillAppear:
とおりです ( を参照)。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.moc = [[AZStackifyDataModel shareDataModel] mainContext];
[AZUser getAllUsersUsingManagedObjectContext:self.moc
success:^(NSArray *users) {
[self.collectionView performBatchUpdates:^{
self.collectionData = [users mutableCopy];
NSMutableArray *indexPaths = [NSMutableArray array];
for (int i = 0; i < self.collectionData.count; i++) {
[indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
}
[self.collectionView insertItemsAtIndexPaths:indexPaths];
} completion:nil];
}
failure:^(NSError *error) {
}];
}
への呼び出しをこのコードに置き換えるとperformBatchUpdates:completion:
、すべて正常に動作します。
self.collectionData = [users mutableCopy];
[self.collectionView reloadData];
私のコードの何が問題なのか誰か知っていますか?
注:をサブクラス化しましたが、アプリがクラッシュしたときに が呼び出されたり到達したりしないUICollectionViewCell
ため、これが問題だとは思いません...collectionView:cellForItemAtIndexPath:
編集 1:完全なビュー コントローラーとカスタム コレクション ビュー セルは次のとおりです: https://gist.github.com/AzizLight/4396a9cfe10511e59988
さらに多くのコードが必要な場合は、お気軽にお問い合わせください。