Ios 向UITableView添加行-n内部一致性错误

Ios 向UITableView添加行-n内部一致性错误,ios,objective-c,uitableview,Ios,Objective C,Uitableview,好吧,我知道有很多关于这个的帖子,这就是我如何构建我的解决方案。。。但我似乎无法让它工作 其想法是,当用户触摸我的UITableView中的“主题”行(第1节第0行)时,我希望它展开以显示我们手头的所有5个主题。。。这就是我现在的解决方案: if(indexPath.section == 1 && indexPath.row == 0){ [[_dataArray objectAtIndex:1] setObject:@[@"Theme", @"Cool Blue", @

好吧,我知道有很多关于这个的帖子,这就是我如何构建我的解决方案。。。但我似乎无法让它工作

其想法是,当用户触摸我的UITableView中的“主题”行(第1节第0行)时,我希望它展开以显示我们手头的所有5个主题。。。这就是我现在的解决方案:

if(indexPath.section == 1 && indexPath.row == 0){
    [[_dataArray objectAtIndex:1] setObject:@[@"Theme", @"Cool Blue", @"Clean Black", @"Lime Green", @"Deep Orange", @"Dark Red"] forKey:@"data"];

    NSMutableArray *indexPaths = [NSMutableArray array];

    for (int i = 0; i < 6; i++) {
        [indexPaths addObject:[NSIndexPath indexPathForRow:indexPath.row+i inSection:indexPath.section]];
    }

    NSLog(@"The paths are %@", indexPaths);

    [_menuTable beginUpdates];
    [_menuTable insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationLeft];
    [_menuTable endUpdates];
}
if(indexPath.section==1&&indexPath.row==0){
[[u dataArray objectAtIndex:1]setObject:@[@“主题”、“冷蓝色”、“纯黑色”、“青绿色”、“深橙色”、“深红色”]forKey:@“数据”];
NSMutableArray*索引路径=[NSMutableArray];
对于(int i=0;i<6;i++){
[indexPaths addObject:[NSIndexPath indexPathForRow:indexPath.row+i目录:indexPath.section];
}
NSLog(@“路径为%@”,索引路径);
[[可选择的开始更新];
[_menutableinsertrowsatindexpaths:indexPaths with rownanimation:uitableviewrownanimationleft];
[_menutableendupdates];
}
这就是我得到的错误:

*由于未捕获异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:节1中的行数无效。”。更新(6)后现有节中包含的行数必须等于更新(1)前该节中包含的行数,加上或减去从该节中插入或删除的行数(6插入,0删除),加上或减去移入或移出该节的行数(0移入,0移出).'

你知道为什么会这样吗?我已经安排好了所有的代表,我(我认为)在这里使用了正确的逻辑


谢谢

该错误告诉您,在更新开始时,您有一个单元格。在更新结束时,您有7个单元格(1+您添加的6个单元格)。但是当它调用您的
numberofrowsinssection
函数时,您将在动画结束后返回6。因此存在一种不一致性。它不知道你想要什么,所以它崩溃了


确保您没有将初始单元格添加到表中,即使它已经在表中。

好的,我明白了:这就是我的想法-但是如果我从该数组中删除@“主题”,我会得到这样的结果:“尝试将第5行插入第1节,但更新后第1节中只有5行”。。。这可能是一个无关紧要的问题,但我添加的元素是否正确?因为如果我把它们打印出来,“主题”会被删除…只是一个想法-我应该先删除我拥有的1个元素吗?是的!我确实必须先把它取下来-谢谢你的小小的推动哈哈谢谢