NSMutableArray仅适用于25个项目

时间:2011-08-05 03:25:43

标签: iphone cocoa-touch nsmutablearray

我有一个与UITableView一起使用的NSMutableArray。我面临的一个奇怪问题是

[results removeObjectAtIndex:rowIndexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:rowIndexPath] withRowAnimation:UITableViewRowAnimationFade];

仅适用于表格的前25个元素,但在26日崩溃?我的代码中没有任何地方可以提及25,我不知道为什么会这样做。

所有元素都可以通过UITableView正确显示,因此它们已正确插入表格中。

任何帮助?

2 个答案:

答案 0 :(得分:1)

可能的情况是,当你从索引中删除项目时,你没有重新加载你的表,因此没有正确调整rowIndexPath.row值,因此你的数量超过你的数组。

答案 1 :(得分:1)

只是一个猜测:

使用removeObjectAtIndex:(NSUInteger)index,您可以在文档中看到:要填补空白,索引之外的所有元素都会通过从索引中减去1来移动。所以你要折叠元素,你不能在不更新长度的情况下迭代数组的计数,否则你会尝试读取无效的索引只是因为前一个删除了列表,并且它比你预期的要短。