【发布时间】:2017-07-03 23:31:06
【问题描述】:
我正在尝试创建一个函数来返回一个元类型数组,然后我可以使用它来解析来自 Swinject Resolver 的实例。这是我的代码:
protocol Task: class { }
func getTypes() -> [Task.Type] {
return [ConcreteTaskA.self, ConcreteTaskB.self]
}
var concreteTasks = [Task]()
for type in getTypes() {
// Use a Swinject Container to resolve the metatype.
let task = container.resolver.resolve(type)! // Error here: Cannot invoke 'resolve' with an argument list of type '(Task.Type)'
concreteTasks.append(task)
}
我不确定如何解决这个问题。我是否需要通过getTypes() 方法以某种方式使用泛型?解析时是否需要调用 type.self 的等价物?
我的要求是我可以定义一个由解析器解析的元类型列表 ([ConcreteTaskA.self, ConcreteTaskB.self])。
【问题讨论】:
标签: swift dependency-injection swinject