2

に表示する画像を決定するための長い if ステートメントがありUIImageViewます。これらはすべて .png ファイルで、次のコードを使用します。

if (whatever) {
    image = [UIImage imageNamed: @"imageName.png"];
}

プログラムが画像を見つけられるかどうかを確認する方法を知っている人はいますか? 画像がプログラムに存在しない場合、エラー画像などを表示できますか?

4

3 に答える 3

7
+[UIImage imageNamed:]

nil対応する画像ファイルが見つからなかった場合に返されます。だからそれをチェックしてください:

UIImage *image = [UIImage imageNamed:@"foo.png"];
if (image == nil)
{
    [self displayErrorMessage];
}
于 2012-08-12T19:50:52.987 に答える
3

最短のスニペットは

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"]) ) {
    ...
}

しかし、ここでは読みやすさをいじっています。

于 2012-08-12T19:52:32.440 に答える
0

まず、 long の代わりに辞書を使用することをお勧めしifます。で各画像名をキーできますwhateverwhateverが現在オブジェクトでない場合は、enumその情報をカプセル化する an を作成し、 NSNumbers を使用して列挙型の値をボックス化します。

次に、nilいつ画像を取得しようとしたかを確認できます。imageNamed:を使用nilして失敗を示すため、次のようになります。

if( !image ){
    // No image found
}
于 2012-08-12T19:53:17.147 に答える