我有一个类别NSObject+Utilities
,其中包含我在项目中使用的各种工具方法。不幸的是,我必须在返回NSColor
的方法中再添加一个参数。
这里有一个例子:
- (NSColor*) ccBlueLight {
return [self libMakeAColor :0.000f :0.535f :1.0f :1.000f];
}
最后一个参数(1.000f
)负责透明度。当我创建这个方法时,我没有想到透明度,我将其修改为1.000f
。由于我在不同项目中使用这些cc
颜色,因此在使用它们时,我不能简单地添加其他参数而不会在其他项目中出现错误。
有没有办法添加透明度参数而没有问题?
答案 0 :(得分:4)
使用透明度参数编写一个新方法:
- (NSColor*) ccBlueLight:(CGFloat)transparency {
return [self libMakeAColor :0.000f :0.535f :1.0f :transparency];
}
并将现有方法的实现更改为使用默认值。
- (NSColor*) ccBlueLight {
return [self ccBlueLight:1.000f];
}
请注意,这两种方法不同。旧的签名没有改变,也没有必要改变旧签名者。
答案 1 :(得分:1)
是否有任何反对简单地添加第二种方法?因此,一个项目可以使用原始项目,另一个项目可以使用新方法。
- (NSColor *) ccBlueLightWithAlpha:(NSNumber *)alpha
{
return [self libMakeAColor :0.000f :0.535f :1.0f :[alpha floatValue];
}
答案 2 :(得分: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];
}