2012-05-25 90 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負載。當連接完成下載數據或發生錯誤時,它會通過連接處理程序塊進行通知。