Я переношу старый метод, который у меня был с помощью 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 и воспользоваться функциями Decodable и Encodable, у меня возникли проблемы с определением параметров.
На мой взгляд, это должно быть примерно так:
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»; только типы struct / enum / class могут соответствовать протоколам
Спасибо.