Загрузить изображение с сервера на UIImageView в телефоне - PullRequest
1 голос
/ 29 ноября 2010

У меня проблема с загрузкой удаленного изображения в UIImageVIew ... Это просто не показывает изображение, может быть, я что-то упустил ...

Я также использую описанное здесь, но с теми же результатами Как загрузить изображение с удаленного сервера на UIImageView в iphone?

Может ли кто-нибудь мне помочь?

Это код, который я использую

Я получаю данные из xml, и для элемента изображения у меня полный путь

[[detailViewController detailImage] setImage:[UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [NSString stringWithFormat:@"%@", [[promoList objectAtIndex: promoIndex] objectForKey: @"image"]] ]]] ];

С этим кодом изображение отображается корректно

[[detailViewController detailImage] setImage:[UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: @"http://localhost/promos/preview/1.jpeg"]] ]];

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Поскольку нижний пример работает, как и ожидалось, и, кроме строки URL, пример выглядит так же, проблема должна быть в получении строки URL. Проблема также в том, что код выглядит так же, но его довольно сложно увидеть. Я бы рефакторинг кода что-то вроде:

NSObject *urlObject = [[promoList objectAtIndex:promoIndex] objectForKey:@"image"];
NSString *urlString = [NSString stringWithFormat:@"%@", urlObject];
NSURL *url = [NSURL URLWithString:urlString];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:imageData];

[[detailViewController detailImage] setImage:image];

Затем вы можете правильно отладить оператор и убедиться, что вы получаете то, что ожидаете, после каждого шага.

Обновление

Для удаления новой строки и вкладок вы можете:

NSString *urlString = [NSString stringWithFormat:@"%@", urlObject];
urlString = [urlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Если urlObject уже является строкой, что и должно быть, то вы можете сделать:

NSString *urlString = [urlObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

, что сделало бы его немного чище.

0 голосов
/ 28 февраля 2011
UIImage *img = [[UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://...."]]] retain];
if (img != nil) 
{ 
    [imageViewName setImage:img];
    [img release]; 
}
...