Я только начал программировать в Objective-C, я понимаю, что он только частично поддерживает перегрузку методов из-за способа генерации имен методов (см. этот вопрос ).
Однако мой вопрос заключается в том, почему я никогда не видел его в каких-либо примерах. Код ниже, кажется, работает нормально, но в любом другом примере, который я видел, второй 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;
}
В чем причина этого? Это вызывает проблемы в подклассах для именования методов таким образом?