2010-10-14 3 views
3

J'ai construit un système basique d'analyse syntaxique Web XML to Core, mais je n'arrive pas à savoir comment paramétrer plusieurs parseurs à la fois, et je sais quand ils sont tous terminés.Délégation de confusion .. Comment savoir quand plusieurs délégués ont terminé leur tâche?

Ceci est ma configuration actuelle, qui obtient seulement un fichier XML analysé ("news"). Mais j'ai plusieurs fichiers xml dont j'ai besoin pour analyser ("sport", "shop" etc). Comment régler toutes ces questions et savoir quand elles sont toutes terminées?

// ViewController.m 

DataGrabber *dataGrabber = [[DataGrabber alloc] init]; 
dataGrabber.delegate = self; 
[dataGrabber getData:@"news"]; 


// DataGrabber delegate method (within ViewController) which gets called when dataGrabber has got all of the XML file 
- (void) dataGrabberFinished:(DataGrabber *)dataGrabber 
{ 
    NSManagedObjectContext *context = [self managedObjectContext]; 
    NSError *parseError = nil; 
    // Parser puts the xml into core data. Do I need delegate on this too? 
    Parser *xmlParse = [[Parser alloc] initWithContext:context]; 
    [xmlParse parseXMLFileWithData:dataGrabber.payload parseError:&parseError]; 
    [xmlParse release]; 
} 

(ce suite à partir de cette question - Returning data from data-grabbing class from web?) Option

Répondre

3

One est de compter combien vous créez et ont chacun un appel vers une méthode qui compte à rebours de ce total. Quand tout revient à zéro, ils sont tous faits.

Vous devrez configurer un délégué pour l'analyseur comme vous l'avez fait pour le téléchargeur.

Questions connexes