7

このメソッドで条件が true かどうかを確認し、特定のボタン (ボタン) に指定した画像を設定します。これがコードです。

-(void)canAfford:(float) f: (UIButton*)button {
    if([self playerHas:(f)] == YES) {
        [button setImage:[UIImage imageNamed:nil] forState:UIControlStateNormal];
        [button setImage:[UIImage imageNamed:@"ButtonBGclicked.png"] forState:UIControlStateHighlighted];
    } else {
        [button setImage:[UIImage imageNamed:@"ButtonBG.png"] forState:UIControlStateNormal];
        [button setImage:[UIImage imageNamed:nil] forState:UIControlStateHighlighted];
    }
}

これが私が得るエラーです。

2013-09-22 10:35:39.985 Tapple[15663:a0b] CUICatalog: Invalid asset name supplied: , or invalid scale factor: 1.000000
4

6 に答える 6

1

1) プラスボタンを押した後、Symbolic BreakPoint を追加します。 一番下のプラス記号 2)空の文字列をチェックするためにこのブール行を追加します 条件のブール行 3)これは自動的に追加されたので(ビルド後かどうかはわかりません)、条件を追加するために編集しました ゼロをチェック

これが少し余分に役立つことを願っています、私も含めて。

于 2014-09-10T18:02:17.313 に答える
1

Xcode 5 の新機能であるアセット カタログを使用した後、同じエラー「CUICatalog: 無効なアセット名が指定されました: 、または無効なスケール係数: 2.000000」が発生し始めました。

いくつかのデバッグの後、そのエラーの原因が「nil」または空の文字列 @"" の引数をクラス メソッド [UIImage imageNamed:] に渡していることを発見しました。バンドルに存在しないファイル名を渡しても、そのエラーは発生しませんでした。

したがって、修正についてはbneelyに同意します(したがって、賛成票を獲得しました)。今、あなたが提案したことをしてもエラーが発生する場合は、コードを確認し、[UIImage imageNamed:] を呼び出す場所にブレークポイントを配置して、nil または空の文字列を引数として渡しているかどうかを確認してください。口論。

参考までに、ブレークポイントを作成するには、コード エディターの左端をクリックして、青色のブレークポイントを追加します。次に、ブレークポイントを右クリックし、ポップアップ メニューから [Edit Breakpoint..] を選択します。次に、「条件」ボックスに次のように入力します。

(!imageFileName || [imageFileName isEqualToString:@""])

ここで、imageFileName は、ロードしようとしているイメージ ファイルを表す文字列です。

于 2013-10-01T22:37:15.867 に答える
0

IB またはストーリーボードを使用している場合にのみ、これをお読みください。

ストーリーボードで UIImageView の画像を設定し、アセット カタログでその画像名を変更した後、この問題が発生しました。ストーリーボードの ImageView にはまだその画像がありましたが、画像ビューの属性インスペクターでは、画像フィールドに「不明な画像」と表示されていました。迷惑なログを除いて、後でコードを介して画像を設定していたため、すべて正常に機能しました。

うーん、「イメージ」という言葉を使いすぎているように見えますが、誰かの役に立てば幸いです。

于 2014-02-08T20:09:56.750 に答える