UITableView,InsertRowsAtIndexPath处理多个请求

时间:2013-04-23 08:57:32

标签: ios objective-c xcode uitableview

我的tableview控制器中有一个名为“fetchEntries”的方法,它通过从Web服务获取来放置数据。它还采用名为“pageNumber”的参数,我通过从另一个方法调用此方法来递增。这个pageNumber实际上是从rss feed的不同页面中提取数据。

- (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)或者,有什么方法可以将它们放在单独的线程中,这样它们就可以独立运行,并且它们可以同时运行。

任何帮助将不胜感激。提前谢谢。

0 个答案:

没有答案