Iphone 同时重新加载行和整个表时崩溃

Iphone 同时重新加载行和整个表时崩溃,iphone,objective-c,cocoa-touch,uitableview,crash,Iphone,Objective C,Cocoa Touch,Uitableview,Crash,我这里有一个很好的bug,特别是在慢速设备中。 我有一个类似于应用商店应用程序中的UITableView jusk,底部有一个加载更多按钮。 按下时,我从服务器加载新信息,设置数组,然后重新加载表视图。在该信息中,还包括表行中显示的每个对象的图像url,因此,当我们得到它时,我们开始加载图像。加载图像时,我将重新加载对象的行 [self.searchResultsTableView reloadRowsAtIndexPaths: [NSArray arrayWithObject: path] w

我这里有一个很好的bug,特别是在慢速设备中。 我有一个类似于应用商店应用程序中的UITableView jusk,底部有一个加载更多按钮。 按下时,我从服务器加载新信息,设置数组,然后重新加载表视图。在该信息中,还包括表行中显示的每个对象的图像url,因此,当我们得到它时,我们开始加载图像。加载图像时,我将重新加载对象的行

[self.searchResultsTableView reloadRowsAtIndexPaths: [NSArray arrayWithObject: path] withRowAnimation: UITableViewRowAnimationNone];
问题出现在因为图像已下载而重新加载行时,而整个表正在这样做,这会导致用户按下“加载更多”按钮并获取更多信息。然后我得到这个错误:

Invalid update: invalid number of rows in section 0.  The number of rows contained in an existing section after the update (140) must be equal to the number of rows contained in that section before the update (125), plus or minus the number of rows inserted or deleted from that section (1 inserted, 1 deleted).
这是完全可以理解的,表格在更新新图像行时被放大了。 我的问题是:如何锁定它,以便在重新加载整个表之前不重新加载该行?像table.isReloading这样的东西会很好。我尝试使用布尔锁,并在主线程中执行这两个操作,但都不起作用。。。
非常感谢。

好吧,博士的一点研究让这一切变得更加清晰

reloadRowsAtIndexPaths:withRowAnimation:如果要提醒用户单元格的值正在更改,请调用此方法。但是,如果通知用户并不重要,也就是说,您只需要更改单元格显示的值,就可以获取特定行的单元格并设置其新值

这就是我所做的,我得到了单元格并为图像设置了新的值,而不是重新加载整个图像。我想它也更有效:

AHMyTableViewCell *cell = (AHMyTableViewCell *) [self.myTableView cellForRowAtIndexPath:path];

                if ((cell != nil) && ([cell  isKindOfClass:[AHMyTableViewCell class]]))
                    cell.myImageView.image = image;
它现在没有崩溃