1

私のアプリでは、if チェックの量を減らしたいので、この方法が最適であると判断しましたが、その方法がわかりません。

だから私はたくさんの #define を持っています、それらは: state1、state2、state3 などです...

とにかく私はUIButtonsを持っており、タグ1のボタンの画像はstate1などによって決定されます...

とにかく、私は今、私がこのようなことをするところまで来ました:

NSString *variableString = [NSString stringWithFormat:@"state%i", theButton.tag];

では、取得したばかりの NSString から state1、state2、state3 などの変数を取得するにはどうすればよいでしょうか。

4

3 に答える 3

3

@"state1"、@"state2"... などの文字列をキーとして使用し、イメージへの一致する参照をキーのオブジェクトとして使用します。

于 2012-08-09T22:22:57.060 に答える
3

以下を使用できます。

[self valueForKey:variableString];

ただし、文字列値がvariableString変数またはプロパティと一致しない場合、この呼び出しは例外をスローします。@try { ... } @catch ...ブロックで例外をキャッチできます。例外をキャッチして処理しないと、アプリは失敗します。

于 2012-08-09T23:05:57.977 に答える
0
const int value = [[someString substringFromIndex:nCharsToTrim] intValue];

または、文字値にアクセスすることで、不要な文字列の作成を避けることができます-[NSString characterAtIndex:]

(そして、このシナリオでは有効な状態値として 0 を使用することはおそらく避けるべきです)

于 2012-08-09T22:33:35.187 に答える