Betrachten Sie die beiden Klassen:
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'
}
}
Ich verstehe nicht, warum das nicht erlaubt ist. Letztendlich wird der von jeder Klasse festgelegte Initialisierer mit allen benötigten Werten aufgerufen. Warum muss ich mich also wiederholen B
, init
indem ich einen Standardwert für x
erneut spezifiziere , wenn die Bequemlichkeit init
in A
gut ist?