2010-10-15 3 views

Répondre

3

Déplacer l'analyse syntaxique au fil de fond, la meilleure façon sera d'appeler:

[someObject performSelectorInBackground:@selector(parse) withObject:nil]; 

Rappelez-vous que chaque thread nécessite NSAutoreleasePool distinct pour la gestion de la mémoire appropriée de sorte que vous devrez créer au début de l'analyse syntaxique méthode et le drain à la fin:

- (void) parse{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    ... 
    [pool drain]; 
} 
+0

Mais j'ai un peu de situation compliquée comme: – Matrix

+0

[self performSelectorInBackground: @selector (CustomMethod :) withObject: nil]; - (void) CustomMethod: (id) expéditeur { \t NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; \t ObjXMLWebService = [[XMLWebService alloc] initWithSoapElements: [NSDictionary dictionaryWithObjectsAndKeys: @ "valeur", @ "Key", nil] BodyTitle: @ "TitleOfXMLWebService" BodyAction: URLValue xsi: URLValue xsd: savon URLValue: URLValue Version: Encoding VersionNumber: EncodingUsed]; ObjXMLWebService.theRequest = [ObjXMLWebService ConfigureRequestWithContentType: ContentTypeValue SOAPAction: SoapActionValue À: URLValue]; – Matrix

+0

[ObjXMLWebService ConnectWithRequest: ObjXMLWebService.theRequest]; \t \t [drain de piscine]; } - (void) ConnectWithRequest: (NSMutableURLRequest *) req { ...... ...... Connexion = [[NSURLConnection alloc] initWithRequest: délégué theRequest: XMLConnection]; XMLConnection définit les méthodes de délégation de connexion, qui appelle/définit également une autre classe pour l'analyse des méthodes déléguées. – Matrix

0

Tout comme Vladimir mentionné, le fil de fond est le chemin à parcourir. Consultez l'exemple de code Apple appelé SeismicXML comme il effectue l'analyse XML complète avec le NSXMLParser.