我正在尝试从T.Type
参数中获取实际对象。这是我的功能。
func inject<T: Injectable>(_ injectableClass: T.Type) -> T {
let injectable = injectableClass as! Injectable
//More code that returns what is needed but this is the error spot
}
我正在创建一个依赖注入框架,并希望按如下方式使用它
var mColorManager: ColorManager {
return mAppModule.inject(ColorManager.self)
}
这一直有效,直到我想在注入函数中做我想做的事情。
这是我得到的错误
无法转换类型&#39; Project.ColorManager.Type&#39;的值(0x610000244158)到&#39; Project.Injectable&#39;
ColorManager
是Injectable
。
如何从T.Type
转换或获取实际的类对象?
答案 0 :(得分:0)
我通过在协议中添加init()
来解决这个问题。我当时可以说
let realInjectableClass = injectableClass.init()