使用 return Class 继承 Codable 进行枚举以将 JSON 解析为您的模型 class

Make enum with return Class inheriting Codable to parse JSON to your model class

我需要对 return class 类型进行枚举,以便在另一个函数中使用以将我的 JSON 解析为模型。

下面是我写的例子。

enum APIType {
  case status

  var responseType: AnyClass {
    switch self {
    case .status:
      return MyModel.self
    }
  }
}

但是,发生了一个错误,我认为这是由于 Codable 继承引起的。

无法将 'MyClass.Type' 类型的 return 表达式转换为 return 类型 'AnyClass'(又名 'AnyObject.Type')

有人经历过这个挑战吗?我该如何解决?

错误实际上很明显,您正在尝试 return 对象的 class 类型,但编译器期望任何 class.[=12 的具体实现=]

只需将responseType的return值替换为AnyObject.Type

class MyModel {

}
enum APIType {
  case status

    var responseType: AnyObject.Type {
    switch self {
    case .status:
      return MyModel.self
    }
  }
}
print(APIType.status.responseType) // MyModel