使用可变参数号重载init

时间:2011-08-25 14:21:23

标签: objective-c overloading

使用可变参数编号重载init方法的正确方法是什么?我在做:

- (id)initWithInt:(int)a
{
   return [self initWithInt:a andString:nil];
}


-(id)initWithInt:(int)a andString:(NSString*)str
{
    self = [super init];
    if (self) {
        NSLog(@"%@ %i",str,a);
    }

    return self;
}

它有效,但return [self initWithInt:a andString:nil];对我来说似乎不对(此刻没有自我,对吗?)

1 个答案:

答案 0 :(得分:3)

不,这完全有效。 Self已经设置好了,重新分配self的习惯是针对几个不同的边缘情况(初始化失败,初始化程序想要返回一个不同的实例,然后是你分配的实例等)。