Единственный способ, которым я знаю, что выполнять перегрузку функций / методов, это использовать базовый класс.Есть ли способ сделать это в том же классе без наследования?
Вот пример того, как я знаю, как перегрузить функцию путем наследования базового класса:
@interface class1: NSObject
-(void) print;
@end
@implementation class1
-(void) print
{
NSLog(@"Hello there");
}
@end
@interface class2: class1
-(void) print: (int) x;
@end
@implementation class2
-(void) print: (int) x
{
NSLog(@"Your number is %d", x);
}
@end
int main(void)
{
class2 *c2 = [class2 new];
[c2 print];
[c2 print: 5];
}
результат:
Hello there
Your number is 5