ho tentato di fare - [NSString stringWithContentsOfURL: encoding: errore:] asincrono, eseguendo un-sincronicamente da un thread in background:Rendere stringWithContentsOfURL asincrono - È sicuro?
__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();
});
});
il suo bel lavoro, e, soprattutto, la sua asincrono.
La mia domanda è se è sicuro farlo, o potrebbero esserci problemi di threading ecc.?
Grazie in anticipo :)
evviva! Non sapevo che fosse possibile: P – JonasG
Prima di tutto, però, funzionerà sulla coda principale a causa di '[NSOperationQueue mainQueue]', ma ho visto 'sendAsynchronousRequest'. Quindi questo non dovrebbe impedire all'interfaccia utente di aggiornarsi. –