У меня есть метод, который я вызываю для отправки запросов веб-службы с помощью GET. Это выглядит так:
- (UIImage*)getImageWithSeriesGUID:(NSString*)seriesGUID ImageID:(int)imageID {
NSString * unescapedString = RIVERWOODS_GET_IMAGE(seriesGUID, imageID);
NSURL *url = [[NSURL alloc] initWithString:[unescapedString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setRequestMethod:@"GET"];
[request addRequestHeader:@"Connection" value:@"Keep-Alive"];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSData *response = [request responseData];
//NSLog(@"Size: %@",[response length]);
NSString *content = [[[NSString alloc] initWithData:response
encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"Data: %@", content);
UIImage *image = [UIImage imageWithData:response];
return image;
}
return nil;
}
Этот подход работает нормально, но он ДЕЙСТВИТЕЛЬНО медленно. С другой стороны, я перебираю цикл for, поэтому этот метод вызывается 20 раз, если массив изображений, который мне нужно собрать, содержит 20 изображений. Я стремлюсь повысить эффективность этого процесса и думаю, что смогу перебирать все идентификаторы изображений, которые мне нужно собрать прямо здесь, в этом методе.
Мне кажется, что причина, по которой это происходит так медленно, заключается в том, что многочисленные запросы, которые мы продолжаем открывать и закрывать. Изображения, которые я загружаю, в среднем составляют ~ 15 КБ.
Мой вопрос: Что я могу сделать, чтобы изменить этот метод, чтобы сделать его таким, чтобы я мог повысить эффективность и воспользоваться функциями поддержки активности HTTP? Я думаю, что вместо того, чтобы передавать идентификатор изображения, я могу просто передать счетчик массива, который мне нужно сделать, а затем установить цикл некоторых типов здесь в методе запроса, который затем позволил бы мне вернуться назад массив изображений ...
Это путь? Есть ли что-то, что мне не хватает? Я ценю вашу помощь и вклад !!