Igo*_*eev 0 types casting swift
我从我的服务器获取了大量数据.
要序列化它我使用ModelMapper.我有很多Mappable对象,所以我需要一个能够映射任何类型的可映射数据的函数.像这样的东西:
func serializeData(of type: Mappable.Type) -> [Mappable]? {
return try? response?.map(to: [type].self)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是该map(:)方法需要[Mappable].Type作为输入.[type].self然而是[Mappable.Type].我迷路了.请帮忙
传递类型foo.Type是一个非常客观的c-ish模式.
在Swift中,我更喜欢通用的解决方案
func serializeData<T : Mappable>() -> [T]? {
return try? response?.map(to: [T].self)
}
Run Code Online (Sandbox Code Playgroud)
或者仍然更加迅速
func serializeData<T : Mappable>() throws -> [T] {
return try response?.map(to: [T].self) ?? []
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |