0
メタタイプの配列を返す関数を作成しようとしていますが、Swinject Resolver
のインスタンスを解決するために使用できます。ここに私のコード:Swinject:メタタイプのリストを使って解決する
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]
)のリストを定義できるということです。