Значительная задержка при асинхронной загрузке изображения с использованием UIImage из URL-адреса

Я пытаюсь написать приложение для 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?

5
задан Jackson 30 November 2010 в 06:04
поделиться