我正在迁移一种使用 Alamofire 的旧方法,其中具有如下功能:
protocol httpRequestSwiftDelegate {
func httpRequestSwiftError(_ error: NSError, tag: Int)
func httpRequestSwiftResponse(_ response: JSON, tag: Int)
}
class httpRequestSwift {
func requestURL(method: HTTPMethod, url : String, params: [String: String], tag: Int)
}
然后我会将响应或错误委托给调用它的控制器。
现在我想使用 Alamofire 5,并利用可解码和可编码功能,我在定义参数时遇到了问题。
在我看来,它应该是这样的:
func requestURL(method: HTTPMethod, url : String, params: Encodable, decodable: Decodable, tag: Int) {
session.request(keychain.string(forKey: K.Api.baseUrl)! + url, method: method, parameters: params)
}
但我收到一个错误:
协议类型“Encodable”的值不能符合“Encodable”;只有结构/枚举/类类型可以符合协议
谢谢。