Вы не получите однозначного ответа на оптимальное количество соединений, потому что их нет.Это зависит только от нескольких переменных, таких как пропускная способность, размер изображения или ваше собственное терпение.Вы должны измерить это самостоятельно, чтобы сделать это правильно.
Выполнение асинхронных запросов не увеличит скорость загрузки, но пользовательский опыт будет в порядке лучше.Серьезно, вы должны подумать о том, чтобы делать это для любой загрузки, которая занимает больше секунды.
Я всегда рекомендую использовать ASIHTTPRequest , это делает реализацию таких вещей, как queues и индикаторы выполнения easy.
Вот простейший пример асинхронного запроса с использованием библиотеки:
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
Обновление: Эта библиотека больше не будетподдерживается.From 1 :
"Обратите внимание, что я больше не работаю над этой библиотекой - возможно, вы захотите использовать что-то еще для новых проектов. :)"
В настоящее время я использую AFNetworking для большинства своих проектов.