0

編集:質問の改訂、範囲を狭めました

NSNumber の int 値に基づいて結果を送信するには、switch ステートメントを使用する必要があります。私の方法は次のようになります。

-(BOOL)setImage:(NSNumber*)c{
       switch ([c intValue]){...}
}

スイッチを実行すると、スイッチで「EXC_BAD_ACCESS」エラーが発生します

私も試しswitch([c integerValue])ましたが、それもうまくいきません

switch ステートメントに static int を配置すると、プログラムは正常に実行されます。

何が問題で、NSNumber の int 値を取得するにはどうすればよいですか?

4

1 に答える 1

3

[c intValue]クラッシュした場合はc、オブジェクト ポインターではありません。予期しない値が返された場合は、おそらくnil. NOそれを確認し、数値を返すnilか、デフォルト値を選択することをお勧めします。

于 2012-07-22T02:45:51.677 に答える