class C1 { init() {} } class C2 { private init(_ a: Int) {} } C2() // error
class C1 { init() {} } class C2 { } C2() // ok
これはC1.initが見えてるんじゃなくて、C2.initが自動定義されてるんじゃないだろうか。 C++の自動コンストラクタ定義みたいなノリで。class C1 { required init(a: Int) {} init(b: Int) {} } class C2 { } C2()
↑よくViewController書いてるとなるやつclass C1 { required init(a: Int) {} init(b: Int) {} } class C2: C1 { override init(b: Int) { super.init(b: b) } // 'required' initializer 'init(a:)' must be provided by subclass of 'C1' }