我有一个协议“动物”,它遵循几种结构。
protocol Animal: Codable {
}
struct Bear: Animal, Codable {...}
struct Panda: Animal, Codable {...}
struct Panther: Animal, Codable {...}
...and so on...
我希望遍历结构的类型,并将类型本身发送给从服务器获取该类型动物的通用函数。
func fetchAnimals<T: Animal>(animalType: T, Completion: @escaping ([T]?, Error?) ->()){...}
我尝试遍历[Animal.Type]的数组,但是我需要确切的结构类型才能推断出泛型T:
let animalTypes: [Animal.Type] = [Bear.self, Panda.self, Panther.self]
for type in animalTypes { fetchAnimals(animalType: type){...}}
不起作用。我收到一个无法推断T的错误。
我的目标是不重复fetchAnimals(animalType :)的完成处理程序太多(我处理的动物类型超过3种)