使用NSURLConnection下载的图像可以在模拟器上正确显示,而不是在iPod上显示

时间:2011-07-11 21:35:42

标签: iphone ios uiimageview ipod-touch

我从网络服务器下载图像(.jpg),然后在UIImageView中全屏显示。在模拟器中,图像显示正确,但是当我在iPod(iOS 4.3.2)上加载应用程序时,我得到一个空白页面。我从NSURLConnection获取图像的NSData,然后使用以下代码在viewDidLoad中设置它:

UIImage *map = [UIImage imageWithData:theData];
mapView.image = map;

我的mapView是在Interface Builder的UIView中没有图像的情况下设置的。我还有一个没有在设备上显示的工具栏,就像它在模拟器上按预期显示的UIImageView一样。有没有人见过类似的行为?

3 个答案:

答案 0 :(得分:0)

您会尝试使用此代码吗?

 - (void)viewDidLoad {
       UIImage *img = [[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://xxxxxxx/xxxx.jpg"]]] retain];
       if (img != nil) {
            mapView.image = img;
            [img release];
    }
    [super viewDidLoad];
 }

对你来说可能不太好,但只是试一试......

答案 1 :(得分:0)

我不确定问题是什么,但我放弃了Interface Builder并手动添加了ImageView,它现在显示正确。

答案 2 :(得分:0)

尝试使用ARC:

NSURL * url = [NSURL URLWithString:                   @ “http://clasificados.eluniversal.com/imagenes/inmuebles/home/home_inmuebles.jpg”];

UIImage *img = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:url]];
if (img != nil) {
    mapView.image = img;
    img = nil;
}