0

私は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

さらに多くのコードが必要な場合は、お気軽にお問い合わせください。

4

0 に答える 0