проблема загрузки изображения в iPhone? - от веб-сервиса - PullRequest
0 голосов
/ 07 августа 2009
imgBiteSpot.clipsToBounds=YES; 
    NSData *imageData = [[[NSData alloc]init]autorelease];
    imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ObjBitSpot.StrImagePath]];
    if(imageData==0)
    {
        imgBiteSpot.image=[UIImage imageNamed:@"img-not-found.gif"];
    }
    else {
        UIImage *imgs = [[UIImage alloc] initWithData:imageData];
        UIGraphicsBeginImageContext(CGSizeMake(88,88));
        [imgs drawInRect:CGRectMake(0.0, 0.0, 88.0, 88.0)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        imgBiteSpot.image=newImage;
        [imgs release];
    }


Я загрузил изображение в imgBiteSpot. Изображение загружается из веб-сервиса. Проблема в том, что это занимает слишком много времени (от 35 секунд до 1 минуты).

Если я удаляю изображение -> код / ​​загрузка, время реакции составляет всего 0,2 секунды.

Как можно сократить время загрузки изображения?

Заранее благодарим за помощь.

Ответы [ 2 ]

3 голосов
/ 07 августа 2009

Вы используете метод NSData dataWithContentsOfURL:, который синхронно загружает данные с сервера и таким образом блокирует поток до тех пор, пока изображение не будет получено.

Вместо этого вы должны загрузить пустое или «загружающее» изображение в ваш UIImage, а затем использовать NSURLConnection для асинхронной загрузки изображения и отображения его по завершении. См. Ссылку NSURLConnection и систему загрузки URL документ.

1 голос
/ 05 ноября 2009

Я написал класс RemoteImage для асинхронной загрузки изображений по сети. Это также заботится об освобождении памяти при необходимости. Смотрите это сообщение: http://www.dimzzy.com/blog/2009/11/remote-image-for-iphone/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...