我剛剛開始在Objective-C中編程,我知道它只是部分支持方法重載,因爲方法名稱的生成方式(請參閱this question)。Objective-C中的方法重載 - 不用於init?
但是,我的問題是爲什麼我從來沒有見過它在任何例子中使用。下面的代碼似乎工作正常,但我看到的任何類型的示例,第二個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;
}
這是什麼原因?這是否會導致子類以這種方式命名方法的問題?
+1「Objective-C根本沒有方法重載。期間」。 – JeremyP 2010-08-18 08:25:06