intenté hacer - [NSString stringWithContentsOfURL: codificación: Error:] asíncrona, mediante la ejecución a un sincrónicamente desde un subproceso en segundo plano:Hacer stringWithContentsOfURL asincrónico - ¿Es seguro?
__block NSString *result;
dispatch_queue_t currentQueue = dispatch_get_current_queue();
void (^doneBlock)(void) = ^{
printf("done! %s",[result UTF8String]);
};
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
result = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com/"] encoding:NSUTF8StringEncoding error:nil];
dispatch_sync(currentQueue, ^{
doneBlock();
});
});
Su funcionamiento muy bien, y lo más importante, su asíncrona.
Mi pregunta es si es seguro hacer esto, ¿o podría haber problemas de subprocesos, etc.?
Gracias de antemano :)
aplausos! No sabía que esto era posible: P – JonasG
Primero pensé que esto funcionaría en la cola principal debido a '[NSOperationQueue mainQueue]', pero que vi 'sendAsynchronousRequest'. Así que esto no debería detener la actualización de la interfaz de usuario. –