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