พิจารณาสองคลาส:
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'
}
}
ฉันไม่เห็นว่าเหตุใดจึงไม่อนุญาต ในที่สุด initializer ที่กำหนดของแต่ละคลาสจะถูกเรียกด้วยค่าที่ต้องการดังนั้นทำไมฉันต้องทำซ้ำตัวเองในB
's init
โดยการระบุค่าเริ่มต้นx
อีกครั้งเมื่อความสะดวกinit
ในA
จะทำได้ดี?