【发布时间】:2017-12-07 17:25:03
【问题描述】:
我的类定义看起来像
class Response<T : Decodable> {
var responseData : T?
}
class Test {
func someFunction() {
let serverResponse = Response<Employee>();
let errorResponse = Response(); //Compilation error here
}
}
如何通过 Decodable 类或 nil 表示来初始化 Response 类?
【问题讨论】:
-
泛型类型必须在声明变量时指定占位符类型是什么(或提供足够的信息来推断它)。一种解决方案是将其包装为枚举(如 Alamofire 的
Result类型)。但这仍然需要您知道响应类型将是什么,例如我正在请求一名员工,但出现了错误。或者你真的不知道错误发生时你期望的类型是什么?