0

状態を設定するメソッドを呼び出しています。この場合はanimateStateです。状態パラメーターは、定義済みのセットの 1 つにすることができます。たとえば、「非表示」、「表示」、「アクティブ」、「非アクティブ」などです。したがって、これは BOOL ではありませんが、開いている NSString よりも明確です。

現在、私は NSString を使用してこれを解決しており、そのisEqualメソッドを使用して状態を確認しています。それは機能していますが、理想的ではありません。

-(void) animateState:(NSString*)state{
    if ([state isEqual:@"hide"]){
...
    } else if ([state isEqual:@"show"]){
...
    } else if ([state isEqual:@"active"]){
...
    } else if ([state isEqual:@"inactive"]){
...
    }
}

パラメータを制限し、最終的に if/switch チェックをより効率的にするにはどうすればよいですか? そのような場合のベストプラクティスはありますか?

4

1 に答える 1

7

ここでは、ヘッダー ファイルのどこかをenum定義します。enum

typedef enum{
    AnimateStateHide,
    AnimateStateShow,
    AnimateStateActive,
    AnimateStateInactive
} AnimateState;

次に、次のようにメソッドを呼び出すことができます。

-(void) animateState:(AnimateState)state{
    switch(state) {

        case AnimateStateHide:
            //Code here;
            break;

        case AnimateStateShow:
            //Code here;
            break;

        case AnimateStateActive:
            //Code here;
            break;

        case AnimateStateInactive:
            //Code here;
            break;
    }
}
于 2013-03-29T14:02:29.530 に答える