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



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

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

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

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

我将如何处理这个问题?我可以添加某种观察者吗?

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

谢谢!

您正在主线程上发出同步请求,甚至不检查错误条件,例如失败或网络连接超时。

您可以改用它:

[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 load ing。当连接完成数据下载或发生错误时,它会通过连接处理程序块通知。

最新更新