Wie kann ich wissen, wenn nsoperation queue hat alle Anträge, so dass ich neu laden mein tableview?

Ich bin das herunterladen von Daten von verschiedenen links mit ASIHTTPRequest und NSOperationQueue zu

download im hintergrund-thread. Wenn eine Anfrage abgeschlossen hat, ich parse in mit requestFinished

delegate-Methode ASIHTTPRequest. Ich möchte zum aktualisieren der Daten im tableview, wenn alle Anfragen in

der Warteschlange abgeschlossen wurde. Gibt es eine Möglichkeit zu wissen, Wann ein NSOperationQueue verarbeitet hat alle

Anfragen? ich meine queue hat eine variable wie "isEmpty" oder jeder Delegierte Methode wie 'queueDidCompletedAllOperation'?

bitte helfen.

Hier ist der code:

//source

@interface SourceModel : NSObject

@property (nonatomic, retain) NSString * link;

@property (nonatomic, retain) NSString * name;

@end


//for rssGroup

@interface CompleteRSSDataModel : NSObject

@property (nonatomic,strong) SourceModel * source;

@property (nonatomic,strong) KissXMLParser * parser;

@property (nonatomic,strong) NSArray * rssArticles;

@end

- (void)viewDidLoad
{
       for (int index=0; index<[rssGroups count]; index++) {

            NSString * urlString = [[[rssGroups objectAtIndex:index] source] link];

            NSURL *url = [NSURL URLWithString:urlString];

            ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request setDelegate:self];

            //set this request's tag to group index of this source(link). See requestFinished for use of this :)
            [request setTag:index];

            [self.queue addOperation:request];
        }

}


- (void)requestFinished:(ASIHTTPRequest *)request {

    NSLog(@"%@",@"RSS Data got from internet successfully :))");


    int groupIndex = [request tag];

    CompleteRSSDataModel * group = [rssGroups objectAtIndex:groupIndex];

    group.parser = [[KissXMLParser alloc]initWithData:[request responseData]];

    if (group.parser == nil) {

        NSLog(@"%@",@"Failed - Error in parsing data :((");
    }

    else {
        NSLog(@"%@",@"Data Parsed successfully :))");

        group.rssArticles = [group.parser itemsInRss];

        //So i want to check here that queue is empty, reload data, but as my information, i don't know any method like hasCompletedAllRequested 

        //if(self.queue hasCompletedAllRequests) {

        //    [self.tableview reloadData];
        //}


    }
}

- (void)requestFailed:(ASIHTTPRequest *)request {

    NSLog(@"%@",@"Error in Getting RSS Data from internet:((");

}
  • Sie werden wahrscheinlich wollen, um zu teilen, was du schon versucht hast hier -- d.h., Forschung, Probleme, etc. Eine Wand der code ist nicht wirklich etwas tun für jeden, der helfen möchte.
  • Vielleicht haben Sie Recht. Ich brauche zum Bearbeiten der Frage. Vielen Dank für die Anregung
InformationsquelleAutor iMemon | 2012-08-11
Schreibe einen Kommentar