Это обычный шаблон инициализации, чтобы сделать self = [super init]; который должен назначить self pointerВызов init в init, перед self = [super init]
Но могу ли я переслать init так:
- (id)initWithObject:(id)object {
return [self initWithObject:object scrollTo:nil];
}
код работает, но не уверен, если это кошерный ... а также, как он может работать без себя = [супер INIT]
двигаться дальше, это нормально?
- (id)initWithObject:(id)object {
self = [self initWithObject:object scrollTo:nil]; // NOT super
if (self) {
//...
}
return self;
}
100% законный. Я делаю это часто, когда у меня много перегруженных конструкторов. – Shai
Да, но вы действительно должны начать использовать 'instancetype', а не' id'. – picciano