带有类别类型的开关/外壳

时间:2019-11-12 07:43:49

标签: swift generics

我想在switch语句中比较类类型(SomeClass.self)。在Swift中是否可行,例如

func retrieveData<T>(forType: T.Type, _ completion: @escaping (Decodable?, Error?) -> Void)
{
    switch forType
    {
        case JonModel.self:
            getJonData(completion)
        case JaneModel.self:
            getJaneData(completion)
    }
}

但是这会产生一个错误: Expression pattern of type 'JonModel.Type' cannot match values of type 'T.Type'

可以做到吗?我当然可以为我所有的数据模型类型定义一个枚举,但是我想知道是否可以仅通过比较给定的数据模型类型来实现。

0 个答案:

没有答案