1

ボタンの文字列値に基づいて多くの切り替えステートメントがあります(たとえば、矢印画像をUIButtonの座標に移動します)。私のコードには多くの繰り返しがあることに気づきました。私が考えた1つのことは、たとえば実際の「スイッチ」関数を使用することでしたが、残念ながら、文字列ではなく変数タイプの切り替えとしてintのみを使用します。

これが私が改善するために探しているコード例です:

-(void)initAperture{

//Set
if ([[[self dataObject] logAperture] isEqualToString:@"dark"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureDark
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"cloudy"]) {
    [self moveImageView:selectorAperture
             toUIButton:buttonApertureCloudy
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"sunny"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureSunny
               animated:NO];        
} 
if ([[[self dataObject] logAperture] isEqualToString:@"pinhole"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonAperturePinhole
               animated:NO];
} 

}

改善のアドバイスやベストプラクティスをいただければ幸いです。

4

1 に答える 1

5

NSDictionaryキーがこれらのNSStringオブジェクトであり、オブジェクトがオブジェクトである場合に使用しUIButtonます。

if次に、ロジックを次のように置き換えます。

[self moveImageView:selectorAperture toUIButton:[_myDictionary objectForKey:[[self dataObject] logAperture] animated:NO]];

指先で入力しただけなので、コンパイルされるかどうかはわかりませんが、私の例は「十分」だと思います。

于 2012-05-01T17:46:37.973 に答える