相关疑难解决方法(0)

Objective-C中的方法重载 - 不用于init?

我刚开始用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;
}
Run Code Online (Sandbox Code Playgroud)

这是什么原因?它是否会导致子类中的问题以这种方式命名方法?

operator-overloading objective-c

0
推荐指数
1
解决办法
1180
查看次数

标签 统计

objective-c ×1

operator-overloading ×1