1

NSObject+Utilitiesプロジェクトで使用するあらゆる種類のツール メソッドを含むカテゴリがあります。残念ながら、 を返すメソッドにパラメーターをもう 1 つ追加する必要がありますNSColor

ここに例があります:

- (NSColor*) ccBlueLight   { 
   return  [self libMakeAColor    :0.000f :0.535f :1.0f :1.000f];
}

最後のパラメーター ( 1.000f) は透過性を担当します。このメソッドを作成したとき、透過性については考えていなかったので、 に修正しました1.000f。これらのcc色を異なるプロジェクトで使用しているため、他のプロジェクトで使用時にエラーが発生せずに別のパラメーターを追加することはできません。

問題なく透明度パラメータを追加する方法はありますか?

4

3 に答える 3

4

透明度パラメーターを使用して新しいメソッドを作成します。

- (NSColor*) ccBlueLight:(CGFloat)transparency { 
   return  [self libMakeAColor    :0.000f :0.535f :1.0f :transparency];
}

そして、デフォルト値を使用するように既存のメソッドの実装を変更します。

- (NSColor*) ccBlueLight {
    return [self ccBlueLight:1.000f];
}

この 2 つは別の方法であることに注意してください。古いものの署名は変更されず、古いものの呼び出し元を変更する必要はありません。

于 2012-12-29T09:16:06.660 に答える
1

単に 2 番目のメソッドを追加することに反対するものはありますか? 1 つのプロジェクトが元の方法を使用し、もう 1 つのプロジェクトが新しい方法を使用できるようにします。

- (NSColor *) ccBlueLightWithAlpha:(NSNumber *)alpha
{
    return  [self libMakeAColor    :0.000f :0.535f :1.0f :[alpha floatValue];    
} 
于 2012-12-29T09:18:49.887 に答える
0

このような?

- (NSColor*) ccBlueLight   { 
  return  [self libMakeAColorRed:0.000f green:0.535f blue:1.0f];
}

- (NSColor*) ccBlueLightWithAlpha:(CGFloat)alpha   { 
  return  [self libMakeAColorRed:0.000f green:0.535f blue:1.0f alpha:alpha];
}
于 2012-12-29T09:15:02.507 に答える