Я пытаюсь написать приложение для iPad, которое загружает изображение по URL-адресу. Я использую следующий код загрузки изображения:
url = [NSURL URLWithString:theURLString];
NSData *data = [NSData dataWithContentsOfURL:url];
img = [[UIImage alloc] initWithData:data];
[imageView setImage:img];
[img release];
NSLog(@"Image reloaded");
Весь этот код добавляется в NSOperationQueue как операция, поэтому он загружается асинхронно и не приводит к блокировке моего приложения, если веб-сервер изображения работает медленно. Я добавил строку NSLog, чтобы я мог видеть в консоли, когда этот код завершил выполнение.
Я постоянно замечал, что изображение обновляется в моем приложении примерно через 5 секунд ПОСЛЕ завершения выполнения кода. Однако, если я использую этот код самостоятельно, не помещая его в NSOperationQUeue, кажется, что изображение обновляется почти сразу.
Задержка вызвана не только медленным веб-сервером ... Я могу загрузить URL-адрес изображения в Safari, и загрузка занимает меньше секунды, или я могу загрузить его с тем же кодом без NSOperationQueue, и он загружается намного быстрее.
Есть ли способ уменьшить задержку до отображения моего изображения, но продолжать использовать NSOperationQueue?