我从服务器上获取了大量数据。
要序列化它,我使用ModelMapper。我有很多Mappable
个对象,所以我需要一个能够映射任何类型的可映射数据的函数。像这样:
func serializeData(of type: Mappable.Type) -> [Mappable]? {
return try? response?.map(to: [type].self)
}
我的问题是map(:)
方法需要[Mappable].Type
作为输入。 [type].self
但是[Mappable.Type]
。我迷路了。请帮忙
答案 0 :(得分:5)
将类型传递为foo.Type
是非常 objective-c-ish 模式。
在Swift中,我更喜欢通用的解决方案,比如
func serializeData<T : Mappable>() -> [T]? {
return try? response?.map(to: [T].self)
}
或仍 swiftier
func serializeData<T : Mappable>() throws -> [T] {
return try response?.map(to: [T].self) ?? []
}