1

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

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

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

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

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

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

谢谢 !

4

1 回答 1

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 使用异步 url 加载。当连接完成下载数据或发生错误时,它会通过连接处理程序块通知。

于 2012-05-25T22:43:52.227 回答