每当我有足够的项目加载到我的UITableView,我可以向下滚动足够远的项目移出屏幕didSelectRowAtIndexPath方法代码我已经实现吐出一个无效的索引值,崩溃我的应用程序。didSelectRowAtIndexPath返回界限索引
这是我的方法的代码,非常标准公平:
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath{
UITableViewCell *cell = [self.tableView.visibleCells objectAtIndex:indexPath.row];
selImg = cell.imageView.image;
[self next];
}
作为一个例子,如果的tableView具有从输入到数据源只有12将显示在任一个时刻在屏幕上的数据15点的行。根据tableView在0-11这些元素。如果我向下滚动到其他三行并选择一个,tableView仍显示它具有元素0-11,但indexPath表示选择了第14行。
这引发以下NSRangeException:
'NSRangeException',原因: '*** - [__ NSArrayI objectAtIndex:]:索引 14超出范围[0 .. 11]'
在Google和SO上搜索了一下,找不到类似于我的问题,我不知道如何解决此问题,因为此代码或类似的东西似乎是获取某个索引值的标准方法选定的行。
可以显示为乌尔行单元格在indexpath方法 –