NSMutableRLEArray objectAtIndex:effectiveRange:: 填充 UITableView 时越界

Posted

技术标签:

【中文标题】NSMutableRLEArray objectAtIndex:effectiveRange:: 填充 UITableView 时越界【英文标题】:NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds in populating UITableView 【发布时间】:2014-04-15 05:21:19 【问题描述】:

我在我的应用程序中使用以下代码。

NSIndexPath* ipath = [NSIndexPath indexPathForRow:[sectionInfo numberOfObjects]-1 inSection:section];
NSLog(@"ipath %@",ipath);
[self.myTableView scrollToRowAtIndexPath:ipath atScrollPosition: UITableViewScrollPositionTop animated:NO];

并像这样获取日志

ipath length = 2, path = 1 - 9

但应用程序崩溃并收到类似的错误

由于未捕获的异常“NSRangeException”而终止应用,原因:“NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds”

但如果我在评论后运行项目

//[self.myTableView scrollToRowAtIndexPath:ipath atScrollPosition: UITableViewScrollPositionTop animated:NO];

它工作正常。我正在使用 fetchedresultcontroller 填充表视图,并且 indexpath 处的对象不为空。任何帮助都会很明显吗?

【问题讨论】:

【参考方案1】:

使用此代码可能会对您有所帮助

  UITableViewCell *cell = (UITableViewCell *)[yourTableName cellForRowAtIndexPath:indexPath];
  [yourTableName setContentOffset:CGPointMake(cell.frame.origin.x, cell.frame.origin.y) animated:NO];

【讨论】:

感谢您的回复。它没有崩溃。但它没有滚动到索引路径 它将为当前单元格设置 tableView 的 contentOffset。 我正在使用自定义单元格。当我使用上面的代码时,'cell' 得到空值 然后请检查您的 indexPath。我认为您的 indexPath 不正确。

以上是关于NSMutableRLEArray objectAtIndex:effectiveRange:: 填充 UITableView 时越界的主要内容,如果未能解决你的问题,请参考以下文章

ObjectA.Signal.connect(ObjectB.Slot) 不工作。我的理解正确吗?

Flink 使用另一个 ObjectA 流中的 List<ObjectB> 创建新的 ObjectB 流

Qt socket中怎么传结构体?

如何根据相关对象集合的属性对 Core Data 结果进行排序?

使用 ARC 的 Objective-C 代表

OCMock 期望在另一个方法中调用一个方法