に表示する画像を決定するための長い if ステートメントがありUIImageView
ます。これらはすべて .png ファイルで、次のコードを使用します。
if (whatever) {
image = [UIImage imageNamed: @"imageName.png"];
}
プログラムが画像を見つけられるかどうかを確認する方法を知っている人はいますか? 画像がプログラムに存在しない場合、エラー画像などを表示できますか?
に表示する画像を決定するための長い if ステートメントがありUIImageView
ます。これらはすべて .png ファイルで、次のコードを使用します。
if (whatever) {
image = [UIImage imageNamed: @"imageName.png"];
}
プログラムが画像を見つけられるかどうかを確認する方法を知っている人はいますか? 画像がプログラムに存在しない場合、エラー画像などを表示できますか?
+[UIImage imageNamed:]
nil
対応する画像ファイルが見つからなかった場合に返されます。だからそれをチェックしてください:
UIImage *image = [UIImage imageNamed:@"foo.png"];
if (image == nil)
{
[self displayErrorMessage];
}
最短のスニペットは
image = [UIImage imageNamed:@"imageName"] ? : [UIImage imageNamed:@"fallback_image"]
しかし、本当にそのようなコードが必要ですか?
別のチェックを行います。
if (whatever) {
image = [UIImage imageNamed: @"imageName.png"];
if(image == nil) {
image = [UIImage imageNamed: @"fallback_image"];
}
}
それはまだショートすることができます
if(! (image = [UIImage imageNamed: @"imageName.png"]) ) {
...
}
しかし、ここでは読みやすさをいじっています。
まず、 long の代わりに辞書を使用することをお勧めしif
ます。で各画像名をキーできますwhatever
。whatever
が現在オブジェクトでない場合は、enum
その情報をカプセル化する an を作成し、 NSNumber
s を使用して列挙型の値をボックス化します。
次に、nil
いつ画像を取得しようとしたかを確認できます。imageNamed:
を使用nil
して失敗を示すため、次のようになります。
if( !image ){
// No image found
}