遍历结构类型以获取泛型函数

时间:2018-07-11 15:51:05

标签: swift generics types

我有一个协议“动物”,它遵循几种结构。

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种)

0 个答案:

没有答案