【发布时间】:2011-10-13 07:57:24
【问题描述】:
好的,正如标题所示,当用户滚动到列表底部时,我试图在 uitableview 中插入更多行。整个原因是由于性能原因,使用大型数据集延迟加载数据。
奇怪的是,如果我慢慢滚动,它可以正常工作,但如果我快速滚动,它会在 [tableView endUpdates]; 上崩溃
数据源是一个 nsmutablearray,它使用一个通用的 fetchRequest 从 coredata 加载数据。在我目前的情况下,我无法使用 fetchedResultsController。
调用插入之前和之后的数据源计数是正确的。行数(和数据源数)正确。
如果我慢慢滚动,然后在某个点快速滚动,它会崩溃,通常与索引超出范围相同的错误,但是错误消息中的索引和边界与 tableview 时的原始计数不正确第一次绑定(并且在任何插入发生之前)。即行数为 4,数据源数为 4 等。
这是错误:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]'
我也尝试在 cellForRowAtIndexPath 方法中插入行,但结果相同。
有什么想法吗?
【问题讨论】:
标签: iphone uitableview core-data