使用可变参数编号重载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];
对我来说似乎不对(此刻没有自我,对吗?)
答案 0 :(得分:3)
不,这完全有效。 Self已经设置好了,重新分配self的习惯是针对几个不同的边缘情况(初始化失败,初始化程序想要返回一个不同的实例,然后是你分配的实例等)。