Xcode iPhone SDK - 检查UIImageView是否无法加载图像

时间:2012-05-25 22:28:45

标签: xcode uiimageview ios5

如何检查UIImageView是否无法加载图像?

我有一个UIImageView从URL加载图像,如下所示:

      [MyImageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://exampleUrl.com/images/the_image.png"]]]];

但如果由于某种原因图像不可用,我想加载替代图像。

我如何解决这个问题?我可以添加某种观察者吗?

或者我可以检查ImageView何时完成加载图像以检查图像是否为零?

谢谢!

1 个答案:

答案 0 :(得分:3)

您正在主线程上发出同步请求,甚至没有检查错误情况,例如它是否失败或网络连接超时。

您可以改用:

[NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://exampleUrl.com/images/the_image.png"]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse* response, NSData* data, NSError* error){

if(error)
{
  // Error Downloading image data
}
else
{
  [MyImageView setImage:[UIImage imageWithData:data]];
}
}];

使用NSURLConnection使用Asychronous url加载。当连接完成下载数据或发生错误时,它会通过连接处理程序块通知。