Ответ 1
Есть несколько вещей, которые вы могли бы сделать.
- Вы можете использовать
sendAsynchronousRequest
и обрабатывать блок обратного вызова. - Вы можете использовать библиотеку
AFNetworking
, которая обрабатывает все ваши запросы асинхронным способом. Очень прост в использовании и настройке.
Код для опции 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]);
}
}];
Код для опции 2:
Возможно, вы захотите загрузить библиотеку и сначала включить ее в свой проект. Затем сделайте следующее. Вы можете следить за сообщением о настройке здесь
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];