Avatar
omochimetaru 5/23/2018 7:23 AM
ObjC関係ない気がする。 protocol Foo { init(string: String) } class Cat { init() {} } extension Cat : Foo { convenience init(string: String) { self.init() } } ↑できない。
7:24 AM
protocolで制約されるinitは、サブクラスにも生えている必要があるから
7:24 AM
required initとして実装する必要があるけど
7:25 AM
extensionにはrequired initをかけないので(なんでだっけ)
7:25 AM
final class + extension { convenience init } の形でしか通せない? (edited)
7:26 AM
(final classならサブクラスは無いからそのクラスでinit呼べる事が保証できる)