Objective C中的函数重载是否可行?

Mat*_*rix 7 overloading objective-c

Objective C中的函数重载是否可行?
好吧,大多数程序员说没有,
但看起来可能,
例如:

-(int)AddMethod:(int)X :(int)Y
{
    return X + Y;
}
-(int)AddMethod:(int)X
{
    return X;
}
Run Code Online (Sandbox Code Playgroud)

调用第一个写入 [self AddMethod :3];
调用最后一个写入[self AddMethod: 3 :4];

Jer*_*myP 22

在Objective-C中无法进行方法重载.但是,您的示例实际上将起作用,因为您已使用不同的选择器创建了两个不同的方法:-AddMethod::AddMethod:.每个交错参数都有一个冒号.放入一些文本也是正常的,例如-addMethodX:Y:但你不必这样做.

  • 您不必*必须*标记第二个参数,但实际上……您必须这样做。没有理由故意让你的代码变得迟钝。 (2认同)
  • @kubi:完全同意.它与"你不必使用"一样,"你不必在C变量名中使用字母,你可以只使用下划线字符串". (2认同)