这是一个无参数函数:
- (void) doSomething;
这是假设的函数,带有“无参数参数”:
- (void) convertCelcius:(CGFloat)celcius toFarenheit;
所以我可以这样称呼它:
CGFloat result = [myClass convertCelcius:50.5 toFarenheit];
CGFloat result = [myClass convertCelcius:50.5 toKelvin];
CGFloat result = [myClass convertKelvin:352 toCelcius];
而不是:
CGFloat result = [myClass farenheitFromCelcius:50.5];
CGFloat result = [myClass kelvinFromCelcius:50.5];
CGFloat result = [myClass celciusFromKelvin:352];
这可能吗?感谢。
答案 0 :(得分:3)
不,Objective-C语法不允许这样做。如果你有第二个关键字,你必须传递一些东西。 Objective-C的创建者Brad Cox解释了为什么here。
无论如何,在Cocoa中,如果消息主要用于其返回值,而不是副作用,我们通常会尝试在返回值之后命名该函数 - 名词短语而不是动词短语。因此,fahrenheitFromCelcius:
之类的名称无论如何都会更好。
另一方面,您可以按照-[UIView convertPoint:toView:]
的示例进行操作。我从未理解为什么UIKit设计师会这样命名。无论如何,这将导致类似:
typedef enum {
TSKelvin,
TSCelsius,
TSFahrenheit
} TemperatureScale;
CGFloat result = [myClass convertDegrees:50.5 from:TSCelsius to:TSFahrenheit];
另请注意,正确的拼写是“华氏度”和“摄氏度”。