swift4:使用func泛型类型来指定另一个func的泛型类型

Posted

技术标签:

【中文标题】swift4:使用func泛型类型来指定另一个func的泛型类型【英文标题】:swift4: use func generic type to specify the generic type of another func 【发布时间】:2018-08-16 15:19:20 【问题描述】:

我想在自己的函数请求中指定数据响应的类型

func request<T>(urlString: String, method: HTTPMethod, parameters: Parameters, headers: HTTPHeaders,
                callBack:@escaping (T) -> Void,
                failureHandler:@escaping (Error) -> Void) 

    Alamofire.request(urlString, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: nil).validate().responseObject  (response: DataResponse<T>) in
        <#code#>
    


【问题讨论】:

请删除图片并在此处发布代码。 【参考方案1】:

当然可以。

func request<T: BaseMappable>(urlString: String, method: HTTPMethod, parameters: Parameters, headers: HTTPHeaders,
                callBack:@escaping (T) -> Void,
                failureHandler:@escaping (Error) -> Void) 

    Alamofire.request(urlString, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: nil).validate().responseObject  (response: DataResponse<T>) in
        switch response.result 
        case .success(let result):
            callBack(result)
        case .failure(let error):
            failureHandler(error)
        
    

【讨论】:

以上是关于swift4:使用func泛型类型来指定另一个func的泛型类型的主要内容,如果未能解决你的问题,请参考以下文章

c# 使用运行时泛型类型调用委托

调用泛型方法而不显式指定类型参数

编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变

Unity基础(26)-委托使用

什么是泛型

Swift4.0 Array详解