2012-05-25 47 views
1

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

我有一个UIImageView从URL加载图像,像这样:

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

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

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

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

谢谢!

回答

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