class FallbackDelegateBox<Delegate: NSObject>: AnyFallbackDelegateBox {
var storage: DelegateStorage
enum DelegateStorage {
case type(_ type: Delegate.Type)
case instance(_ delegate: Delegate)
}
override var delegate: NSObject? {
switch storage {
case let .type(type):
let delegate = type.init() // error: constructing an object of class type 'Delegate' with a metatype value must use a 'required' initializer
...
}
#endif
}
}