Перегрузка init с переменным номером параметра - PullRequest
1 голос
/ 25 августа 2011

Как правильно перегрузить методы 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 Ответ

3 голосов
/ 25 августа 2011

Нет, это совершенно верно. Self уже настроен, идиома переназначения self для пары различных крайних случаев (инициализация не удалась, инициализатор хочет вернуть другой экземпляр, чем тот, который вы выделили и т. Д.).

...