Я пытаюсь динамически создать тип экземпляра класса с использованием дженериков, однако я столкнулся с каким-то странным поведением. В примере 1 все работает, но в примере 2, если я передаю Test.self на общую функцию, это не сработает. Тип тот же, все одно и то же, я не понимаю, почему.Передача быстрого класса в универсальную функцию
class Test{
required init(x: Int){
// Do Something
}
}
class Builder{
init(){
}
func use<T>(test2: T.Type) -> Void{
test2(x: 10) // Error: T cannot be constructed because it has no accessible initializers
}
}
// Example 1:
let test1 = Test.self
test1(x: 10)
// Example 2:
let builder = Builder()
builder.use(Test.self)