目标c中的方法重载



我在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:,这两个方法都有不同的名称,不是吗?

因此,在这里您的方法名称(选择器)发生了更改。

最新更新