這是執行self = [super init]的通用init模式;它應該分配自我指針在init中調用init,在self = [super init]之前調用
但我可以像這樣轉發init嗎?
- (id)initWithObject:(id)object {
return [self initWithObject:object scrollTo:nil];
}
代碼工作,但不知道這是否是猶太...還怎麼能沒有自我工作= [超級初始化]
另外的移動,這樣行嗎?
- (id)initWithObject:(id)object {
self = [self initWithObject:object scrollTo:nil]; // NOT super
if (self) {
//...
}
return self;
}
100%合法。當我有多個重載的構造函數時,我經常這樣做。 – Shai
是的,但是您應該真正開始使用'instancetype'而不是'id'。 – picciano