3

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

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

4

0 回答 0