以下内容是否可行?
1)非指定初始化程序是否可以调用超类的指定初始化程序 2)类的指定初始化器是否可以调用超类的非指定初始化器?
或者必须遵循以下流程: a)指定初始化程序必须调用超类的指定初始化程序 b)非指定初始化程序必须调用自己类的指定初始化程序
如果违反了上述(1)或(2),会发生什么?(或者,如果我们必须始终遵循(a)和(b),那么背后的原因是什么?)
1)非指定初始化程序是否可以调用超类的指定初始化程序 2)类的指定初始化器是否可以调用超类的非指定初始化器?
或者必须遵循以下流程: a)指定初始化程序必须调用超类的指定初始化程序 b)非指定初始化程序必须调用自己类的指定初始化程序
如果违反了上述(1)或(2),会发生什么?(或者,如果我们必须始终遵循(a)和(b),那么背后的原因是什么?)
-initWithRed:green:blue:
,那么-init
将调用[self initWithRed:... green:... blue:...]
。指定初始化器是你放置类所需初始化代码的地方,其他初始化器必须调用它以便执行该代码。指定初始化器有责任调用其中一个超类的初始化器。我不理解你最后一段的意思,但如果你是在引用我的回答,也许你可以在那里发表评论。 - Caleb