Ci sono un paio di cose che potresti fare.
- È possibile utilizzare
sendAsynchronousRequest
e gestire il blocco di richiamata.
- È possibile utilizzare la libreria
AFNetworking
, che gestisce tutte le richieste in modo asincrono. Molto facile da usare e configurare.
codice per l'opzione 1:
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (error) {
//NSLog(@"Error,%@", [error localizedDescription]);
}
else {
//NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]);
}
}];
codice per l'opzione 2:
Si potrebbe voler scaricare la libreria & includerlo nel progetto prima. Quindi fai quanto segue. È possibile seguire il post su creazione here
NSURL *url = [NSURL URLWithString:@"http://httpbin.org/ip"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"IP Address: %@", [JSON valueForKeyPath:@"origin"]);
} failure:nil];
[operation start];
È molto probabile che avere questa domanda chiuso in quanto troppo aperta e localizzato. Ti suggerisco di descrivere cosa stai cercando di fare e cosa hai provato e perché non funziona in modo che le persone possano rispondere direttamente alla richiesta. Ci sono molte persone disponibili e in grado di aiutarti, ma le domande più specifiche che indicano ciò che hai provato e il motivo per cui non funziona tendono a essere quelle che ottengono le risposte migliori. – gaige
@gaige Mi piace come non è stato chiuso :) – Supertecnoboff