在uiimageview中显示来自url的图像

时间:2010-05-11 22:35:29

标签: iphone objective-c cocoa-touch uiimageview

我尝试在我的iphone应用中显示图像,但它没有显示。我在IB中连接并且我检查以显示本地图像,它工作得很好。我也从图像中检查了网址,这没关系。我使用下一个代码:

NSURL *imageURL = [NSURL URLWithString: aVideo.urlThumbnail];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData]; 
imageView.image = image;

//Video.h
NSString *urlThumbnail;

这是我在视图上的代码。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [tableView reloadData];
}

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"URLTHUMBNAIL: %@", aVideo.urlThumbnail); 
    NSURL *imageURL = [NSURL URLWithString: aVideo.urlThumbnail];
    NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage *image = [UIImage imageWithData:imageData]; 
    imageView.image = image;
}

NSLog在控制台上获取

URLTHUMBNAIL: http://147.83.74.180/thumbnails/56.jpg

IB上的连接没问题,因为我可以使用同一IBAction上的下一个代码显示本地图像

UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"barret" ofType:@"png"]];

2 个答案:

答案 0 :(得分:1)

NSLog()自己的一些关于变量中真实内容的注释非常有帮助。如果你真的把所有东西都放在IB中,那么可能是aVideo.urlThumbnail没有被设置。我希望在创建NSURL之前在控制台中看到这个值。

答案 1 :(得分:0)

首先,由于NSData dataWithContentsOfURL:访问网络,您应该考虑在后台执行此操作。否则,您的UI可能会无响应。

您应该考虑添加一些额外的日志记录来检查imageDataimage的值。此外,您可以致电NSData dataWithContentsOfURL:options:error:查看是否是失败的原因。