传递Codable结构时无法推断通用参数'T'

问题描述 投票:0回答:1

[请先阅读代码以更好地理解。

func getType<T: Decodable>(urlString: String, header: HTTPHeaders, completion: @escaping (T?) -> Void){

}

let networkManager = DataManager()

 networkManager.getType(urlString: kGetMyDayTaskDetails + strId, header: header) { (MyDayAndTaskDetails) in

}

错误:

Generic parameter 'T' could not be inferred

我正在尝试使用泛型将struct作为参数传递,以使用用于api调用的通用方法。但是无法正确拨打电话。请指导。

swift generics codable
1个回答
0
投票

请考虑闭包中的参数是instance,而不是类型。例如喜欢

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { details in

}

要指定泛型类型对其进行注释,并且根据签名,它必须是可选的

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { (details : MyDayAndTaskDetails?) in 

}
© www.soinside.com 2019 - 2024. All rights reserved.