我的 tableview 控制器中有一个名为“fetchEntries”的方法,它通过从 Web 服务获取数据来放置数据。它还采用了一个名为“pageNumber”的参数,我通过从另一个方法调用此方法来递增该参数。这个 pageNumber 实际上是从 rss 提要的不同页面中提取数据。
- (void) fetchEntries:(NSInteger )pageNumber
{
channel = [[TheFeedStore sharedStore] fetchWebService:pageNumber withCompletion:^(RSSChannel *obj, NSError *err){
if (!err) {
int currentItemCount = [[channel items] count];
channel = obj;
int newItemCount = [[channel items] count];
int itemDelta = newItemCount - currentItemCount;
if (itemDelta > 0) {
NSMutableArray *rows = [NSMutableArray array];
for (int i = 0; i < itemDelta; i++) {
NSIndexPath *ip = [NSIndexPath indexPathForRow:i inSection:0];
[rows addObject:ip];
}
[[self tableView] insertRowsAtIndexPaths:rows withRowAnimation:UITableViewRowAnimationBottom];
[aiView stopAnimating];
}
}
}];
[[self tableView] reloadData];
}
它工作得很好。例如,当 pageNumber 为 1 并且它正在加载 tableview 中的数据时,如果由于涉及图像而该过程尚未完成,并且我将 pageNumber 增加到 2,它将停止加载第 1 页的条目并开始加载第 2 页而不完成第 1 页。
问题:1)我有什么方法可以自定义,以便“insertRowsAtIndexPath”方法从第 1 页条目完成的索引开始加载第 2 页条目。2)或者,有什么办法可以将它们放在单独的线程中,以便它们可以独立运行并且它们都可以同时运行。
任何帮助,将不胜感激。提前致谢。