我有一张带有奖品清单的NSMutableArray。
有了这些,我填写了一个UITableView。
现在,我尝试使用TableView CommitEditingStyle删除其中一个奖品。并给我“无效更新:无效的节数....”错误。
我在互联网上发了很多关于“无效更新:无效的部分数量......”的帖子,但我无法让它发挥作用。
首先,我从数组中删除对象,然后更新TableView(就像所有帖子教我一样)。但仍然给我错误
我尝试将数组设置为nill并且是相同的。
是否需要刷新数组或类似的内容?
这是我的代码:
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[[self myPrizesList] removeObjectAtIndex: [indexPath row]];
[self.tableView beginUpdates];
// Either delete some rows within a section (leaving at least one) or the entire section.
if ([[self myPrizesList] count] > 0)
{
// Section is not yet empty, so delete only the current row.
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
}
else
{
// Section is now completely empty, so delete the entire section.
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section]
withRowAnimation:UITableViewRowAnimationFade];
}
[self.tableView endUpdates];
}
}
我总是说,对于5元素数组,“更新后的表视图中包含的节数(5)必须等于更新前的表视图中包含的节点数(5),加或减插入或删除的部分数量(0插入,1删除)“
如果我将数组设置为nil,则说:“更新后的表视图中包含的节数(1)必须等于更新前的表视图中包含的节数(1),加上或减去插入或删除的部分数量(0插入,1删除)“
谢谢,抱歉我的英语不好
答案 0 :(得分:1)
这是删除部分的问题,你要删除最终的奖项AND部分,但是当表格重新加载时它仍然具有原始的部分数量...... 5.你如何确定要返回的部分数量?如果您删除了一个,则需要减少。