swift - 从类型创建数组类型
问题描述
我从我的服务器获取大量数据。
要序列化它,我使用ModelMapper。我有很多Mappable
对象,所以我需要一个能够映射任何类型的可映射数据的函数。像这样的东西:
func serializeData(of type: Mappable.Type) -> [Mappable]? {
return try? response?.map(to: [type].self)
}
我的问题是该map(:)
方法需要[Mappable].Type
作为输入。[type].self
然而是[Mappable.Type]
。我在这里迷路了。请帮忙
解决方案
传递类型foo.Type
是一种非常客观的 c模式。
在 Swift 中,我更喜欢通用解决方案,例如
func serializeData<T : Mappable>() -> [T]? {
return try? response?.map(to: [T].self)
}
或者更快
func serializeData<T : Mappable>() throws -> [T] {
return try response?.map(to: [T].self) ?? []
}