我有一个通用类,比方说DataProvider<T,S>
现在,我想从某个方法(如getProviders()
)中检索所有不同的DataProvider。但是,由于Swift具有编译时泛型,这似乎不可能吗?
func getProvider() -> [DataProvider]
{
let prov1 = DataProvider<Foo,Bar>()
let prov2 = DataProvider<Foo2,Bar2>()
return [prov1,prov2]
}
此DataProvider的所有方法也都使用通用参数/返回值,因此我不能让它通过非通用协议进行确认。这仅仅是Swift的局限性,还是有解决这个问题的聪明方法?