【问题标题】:Generic parameter 'Parameters' could not be inferred in swift? Alamofire with generics无法快速推断通用参数“参数”?带有泛型的 Alamofire
【发布时间】:2022-01-24 12:59:03
【问题描述】:

我对 Alamofire 和一般用途有疑问:

struct Network{
static func getApiRequest<T>(model:BaseNetworkClass,type : T.Type,completionHandler:@escaping (T)->(),errorHandler:@escaping (String) ->()) where T:Decodable{
    AF.request(model.request(), method: model.httpMethod as! HTTPMethod, parameters: nil, encoder:URLEncodedFormParameterEncoder.default , headers: nil, interceptor: nil, requestModifier: nil).responseDecodable { (response:AFDataResponse<T>) in
        switch response.result{
        case .success(let res):
            completionHandler(res)
            break
        case .failure(let err):
            errorHandler(err.localizedDescription)
        }
    }
        
}
}
`

当我尝试使用它时,我收到错误 "Generic parameter 'Parameters' could not be inferred":

我的错误是什么?

【问题讨论】:

  • 向我们展示您如何尝试使用它,因为这是错误所在。
  • @workingdog 我什至不能使用它,因为它给了我我提到的错误
  • 告诉我们你如何称呼这个getApiRequest,正如你所说,这是你得到错误的地方。
  • @workingdog 我刚刚添加了可以查找的错误图像。我不要在任何地方使用这种方法,因为它给了我这个错误消息。我无法清楚地解释自己对这一点感到抱歉
  • @Sait47 不要使用两个完成处理程序。你应该使用 Swift 通用枚举 Result.success.failure。顺便说一句,您需要显式设置结果类型。

标签: swift xcode oop generics alamofire


【解决方案1】:

我没有 AF,但是你能试试这样的方法,然后告诉我们你得到了什么:

struct Network {
    
    static func getApiRequest<T: Decodable>(model: BaseNetworkClass, completionHandler: @escaping (T)->(), errorHandler: @escaping (String) ->()) {
        AF.request(model.request(), method: model.httpMethod as! HTTPMethod, parameters: nil, encoder: URLEncodedFormParameterEncoder.default , headers: nil, interceptor: nil, requestModifier: nil).responseDecodable(of: T.self) { response in
            switch response.result {
            case .success(let res):
                completionHandler(res)
                break
            case .failure(let err):
                errorHandler(err.localizedDescription)
            }
        }
    }

}

【讨论】:

  • 不幸的是我得到了同样的错误@workingdog
猜你喜欢
  • 2023-03-11
  • 2015-08-03
  • 2019-10-19
  • 2014-08-31
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
相关资源
最近更新 更多