두 가지 클래스를 고려하십시오.
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