UICollectionView:删除单元格问题

UICollectionView: removing cell issue

但是,我正在尝试从我的 collectionView 中删除一个单元格。当我从我的数据源中删除对象并尝试批量更新时,它说该单元格不再存在。:

'NSInternalInconsistencyException', reason: 'attempt to delete item 0 from section 0 which only contains 0 items before the update'

在这段代码之前,我从我的核心数据中删除了内容,[[usermanager getSelectedUser]loadCards]; 行实际上重新加载了包含单元格内容的数据源,方法是从核心数据中获取它们。

- (void)cardRemoved:(NSNotification *)note {

    NSDictionary *args = [note userInfo];
    Card *card = [args objectForKey:@"card"];
    [[usermanager getSelectedUser]loadCards];
    [self.collectionView performBatchUpdates:^{
        NSIndexPath *indexPath =[NSIndexPath indexPathForRow:card.position.intValue inSection:0];
        [self.collectionView deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
    } completion:^(BOOL finished){
        [self.collectionView setDelegate:self];
        [self.collectionView setDataSource:self];
        [self.collectionView reloadData];

    }];
}

如果我在调用 loadCards 行之前打印出单元格的数量,我会得到正确的行数(正如预期的那样)。

编辑 这就是 loadCards 调用的内容:

-(NSMutableArray *)getCards{
    UserModel *selectedUser = [self getSelectedUserFromDB];
    NSMutableArray *cards = [[NSMutableArray alloc] init];
    for(CardModel *cardModel in selectedUser.cards){
        [cards addObject:[self modelToCard:cardModel]];
    }
    return cards;
}

我注意到,即使我不调用 loadCards 方法,它也会说视图中没有项目。

谁能帮帮我?谢谢

UICollectionView 中删除单元格, 然后 从模型中删除它们。同样的事情也适用于 UITableView。您也不需要在删除项目后重新加载集合视图。

如果您愿意,您可以只从模型中删除项目,然后重新加载集合视图,不在模型中的项目将从集合视图中消失,但没有从中删除项目所产生的相同动画集合视图。