1

UIImageViewが画像の読み込みに失敗したかどうかを確認するにはどうすればよいですか?

次のようなURLから画像をロードするUIImageViewがあります。

      [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 に答える