我在stackoverflow上看到了很多答案。所有答案都说方法重载在目标c中是不可能的。但目前我已经做了一个真实的例子,所以它对我有效。所以我完全困惑了。也许我错了,但根据java的概念,我是对的。因此,任何人都会让我更清楚,任何帮助都会被告知。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self show];
[self show:@"Foo......"];
}
- (void)show
{
NSLog(@"Show");
}
- (void)show:(NSString *)str
{
NSLog(@"Str %@",str);
}
输出
显示
Str Foo。。。。。。
在C++中,您可以用int add(int, int, int)
作为int add(int, int)
。两种方法的名称相同add
然而,在Obj-C中,您的选择器包含另一个名称add:first:withSecond:
和add:first:withSecond:withThird:
,这两个方法都有不同的名称,不是吗?
因此,在这里您的方法名称(选择器)发生了更改。