【发布时间】:2010-08-18 06:28:20
【问题描述】:
我刚刚开始使用 Objective-C 进行编程,我知道由于方法名称的生成方式,它仅部分支持方法重载(请参阅this question)。
但是,我的问题是为什么我从未在任何示例中看到它使用过。下面的代码似乎可以正常工作,但我见过的任何类型的示例,第二个 init 都将命名为 initWithServerName 或类似名称,而不是利用重载。
-(id) init {
self = [super init];
return self;
}
// usually this would be called initWithName or something? but to me it
// seems easier this way because it reminds me of method overloading from C#.
-(id) init: (NSString*)newServerName {
self = [super init];
if(self) {
serverName = [[NSString alloc] initWithString:newServerName];
}
return self;
}
这是什么原因?以这种方式命名方法是否会导致子类出现问题?
【问题讨论】:
标签: objective-c operator-overloading