UITableView抛出NSInternalInconsistencyException

时间:2013-01-10 15:21:14

标签: ios uikit

使用deleteRowsAtIndexPaths从表格中删除行后,我收到了NSInternalInconsistencyException,其中包含以下文字:

  

无效更新:无效的部分数量。部分的数量   更新后的表视图中包含的(1)必须等于   更新前的表视图中包含的节数(1),   加或减插入或删除的部分数量(0插入,   1删除)。

例外是指删除了部分的数量,但deleteRowsAtIndexPaths方法应该删除。据我所知,部分的数量应该不受影响。怎么会发生这种情况?什么可能导致表认为我想删除行?

导致错误的完整代码行是:

[self.contentTable
 deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForItem:index inSection:0]]
 withRowAnimation:UITableViewRowAnimationMiddle];

1 个答案:

答案 0 :(得分:0)

我确实设法解决了这个问题。原来混淆的原因是一条无用的错误信息。

我的错误是我试图删除错误的行(我的表中有14行,我试图删除行2147483647 - 并非巧合,这是NSNotFound的值)。显然,尝试删除此行会产生有关表中节数的异常消息。