У меня есть этот класс и протокол в рамках:
public protocol P {}
open class C {
public init(_ p: P.Type) {
//super.init() etc
}
}
А в проекте используется этот фреймворк:
enum E: P {
// cases...
}
Меня беспокоит то, что для каждого класса, который наследует C
, мне нужно определить одно и то же init()
следующим образом:
final class C1: C {
init() {
super.init(E.self)
}
}
final class C2: C {
init() {
super.init(E.self)
}
}
// etc...
Есть ли способ объявить это значение по умолчанию init
в моем проекте, например, использовать расширение таким образом:
extension C {
// Declare the init(E.self) here somehow?
}
Таким образом, я бы просто позвонил C1()
, C2()
и т. Д. Без определения его в подклассе.
Спасибо за вашу помощь.