Рассмотрим два класса:
class A {
var x: Int
init(x: Int) {
self.x = x
}
convenience init() {
self.init(x: 0)
}
}
class B: A {
init() {
super.init() // Error: Must call a designated initializer of the superclass 'A'
}
}
Я не понимаю, почему это запрещено. В конечном счете, назначенный инициализатор каждого класса вызывается с любыми значениями, которые им нужны, так почему мне нужно повторять себя в B
's init
, x
снова указывая значение по умолчанию , когда удобство init
в A
этом вполне подойдет?