0

と呼ばれるメソッドがある場合

-(void) changeButton:(UIButton *)button andAlpha:(float)alpha andEnabled:(BOOL)enabled {
    button.alpha = alpha;
    button.enabled = enabled;    
}

とにかく、同じ値のままになるように、呼び出し[self changeButton:buttonName andAlpha:0.5];て有効にすることを逃すことができますか。andEnabled(BOOL)

4

3 に答える 3

0

C ++のデフォルトのパラメーター化された関数について質問していると思います。

しかし、Objective-C はこれをサポートしていません。

ただし、2 つのメソッドを作成できます。

-(void) changeButton:(UIButton *)button andAlpha:(float)alpha {
    button.alpha = alpha; 
}

-(void) changeButton:(UIButton *)button andAlpha:(float)alpha andEnabled:(BOOL)enabled {
    button.alpha = alpha;
    button.enabled = enabled;    
}

C の場合: ObjC を使用して C サブセットに追加される特別なものはありません。純粋な C で実行できないことは、ObjC でコンパイルしても実行できません。つまり、既定のパラメーターを使用したり、関数をオーバーロードしたりすることはできません。代わりに 2 つの関数を作成します。

別の方法の 1 つ (めったに使用しないため、ビットが長くなります) は、フラグを設定し、フラグの YES/NO をチェックすることです。

 -(void) changeButton:(UIButton *)button andAlpha:(float)alpha andEnabled:(BOOL)enabled withFlag:(BOOL)flag{
    button.alpha = alpha;
    if(flag){        
        button.enabled = enabled;    
    }
}
于 2012-11-21T11:30:20.710 に答える