¿Cómo puedo obtener NSURLConnection para llamar a sus métodos delegados de un hilo diferente en lugar del hilo principal. Estoy tratando de perder el tiempo con el scheduleInRunLoop: forMode: pero no parece hacer lo que quiero.iOS, NSURLConnection: Delegar retrollamadas en hilo diferente?
Tengo que descargar un archivo grande e interrumpe el hilo principal con tanta frecuencia que algunas representaciones que se suceden comienzan a estar entrecortadas.
NSURLRequest * request = [NSURLRequest requestWithURL:url];
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
NSRunLoop * loop = [NSRunLoop currentRunLoop];
NSLog(@"loop mode: %@",[loop currentMode]);
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];
La otra cosa que no veo mucho es "Modos" Sólo hay dos modos documentados por lo que no es mucho realmente a prueba con.
¿Alguna idea?
Gracias
no se mantiene cerca del hilo en el que se ejecuta la cola? Entonces, llamo esto una vez, el hilo se mantiene. Llamo esto de nuevo, ya que GCD decide en qué hilo se ejecuta la cola, posiblemente se mantenga otro hilo y así sucesivamente ... Entonces, ¿no es esto posible mantener los hilos sin razón alguna una vez que se ha terminado el trabajo en los hilos utilizados? cola global? Además, ¿a qué te refieres con "Si quieres una garantía sobre qué hilo estás ejecutando, reemplaza la llamada a dispatch_get_global_queue() apropiadamente"? ¿Cómo se puede dirigir un hilo a través de GCD? – zumzum