覆盖Objective C类中的方法

Tho*_*lin 3 overloading runtime objective-c

为什么我不能这样做,我怎么能在Objective C中执行相同的行为?

@interface Test
{

}

- (void)test:(Foo *)fooBar;
- (void)test:(Bar *)fooBar;

@end
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

Mar*_*tos 5

这称为重载,而不是覆盖.Objective-C方法不支持类型上的重载,只支持方法和参数名称(并且"重载"对于正在发生的事情来说并不是一个很好的术语).


Nic*_*ore 5

惯例是根据接受的参数对方法名称进行变化:

- (void)testWithFoo:(Foo *)foo;
- (void)testWithBar:(Bar *)bar;
Run Code Online (Sandbox Code Playgroud)