J'utilise NSXMLParser dans mon fichier RootViewController.m.Envoyer des informations de délégué [iPhone]
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:response_data];
[xmlParser setDelegate:self];
[xmlParser parse];
[xmlParser release];
Je met également en œuvre cette méthode pour ajouter des entrées à un dictionnaire défini dans RootViewController.m pour une utilisation ultérieure:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
Cependant, je voudrais obtenir plus d'un fichier XML et faire des choses différentes avec ses nœuds; Cela ressemble à ce que j'ai besoin d'utiliser des fichiers externes en tant que délégués. Ma question est:
Si je les fichiers d'implémentation suivants (& leurs fichiers d'en-tête):
- RootViewController.m
- XMLDelegate1.m
- XMLDelegate2.m
et définir le i
e délégué NSXMLParser à être XMLDelegate i
.m, comment puis-je t ces fichiers pour retourner un NSDictionary que je peux ensuite ajouter au NSDictionary défini dans RootViewController.m?
Je suppose qu'il ya deux réponses possibles:
- Utilisez une méthode que je ne sais pas; ou
- utiliser un meilleur flux de travail
Je pense qu'il est 2, mais espère que c'est 1.
Merci, Andy
MISE À JOUR: J'ai trouvé un moyen de parvenir à la but, même si je ne suis pas convaincu que c'est la meilleure façon. Fondamentalement, je demande à mon délégué de mettre à jour un fichier Plist et d'utiliser le centre de notifications pour savoir quand cela se produit.
Le problème que j'ai eu avec faire une sorte de classe XMLController.m qui gère toute l'analyse XML est que la méthode didStartElement ne retourne rien, en particulier pas à l'appel d'origine de mon RootViewController.m .. y at-il un moyen de contourner cela? – Andy