Mi NSXMLParser no funciona en segundo plano

El análisis funciona de maravilla.

-(void) callParse { parser = [[NSXMLParser alloc] initWithData:data]; parser.delegate = self; [parser parse]; [parser release]; } 

Quiero realizar el análisis sintáctico en segundo plano. Este código no hace ningún análisis. ¿Pero por qué?

  @interface NSXMLParser(Private) - (void)myParse; @end @implementation NSXMLParser(Private) - (void)myParse { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [self parse]; [pool drain]; } @end -(void) callParse2 { parser = [[NSXMLParser alloc] initWithData:data]; parser.delegate = self; [NSThread detachNewThreadSelector:@selector(myParse) toTarget:parser withObject:nil]; [parser release]; } 

ACTUALIZACIÓN: llamo callParse2 4 veces y crea 4 subprocesss. Hace un poco de análisis, pero los resultados son desorderados. Puede que tenga algún problema con las variables de synchronization. NSXMLParser llama a delegates que usan properties no matéricas.

No estoy del todo seguro de por qué no funcionaría en un método de categoría, pero ¿ha intentado activar el subprocess en el object al que llama el NSXMLParser?

 - (void)startParsing{ //... [NSThread detachNewThreadSelector:@selector(parseXML:) toTarget:self withObject:parseData]; //.. } - (void)parseXML:(id)parseData { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSXMLParser * parser = [[NSXMLParser alloc] initWithData:parseData]; parser.delegate = self; [parser parse]; [parser release]; [pool drain]; }