如何将另一个参数添加到现有方法

时间:2012-12-29 09:07:02

标签: objective-c methods parameters add

我有一个类别NSObject+Utilities,其中包含我在项目中使用的各种工具方法。不幸的是,我必须在返回NSColor的方法中再添加一个参数。

这里有一个例子:

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

最后一个参数(1.000f)负责透明度。当我创建这个方法时,我没有想到透明度,我将其修改为1.000f。由于我在不同项目中使用这些cc颜色,因此在使用它们时,我不能简单地添加其他参数而不会在其他项目中出现错误。

有没有办法添加透明度参数而没有问题?

3 个答案:

答案 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];
}