等效于Request.serializeResponseJSON-迁移Alamofire 5

时间:2020-09-05 08:17:15

标签: swift alamofire

我对以下代码有疑问:

func request(url: URL, completionHandler: @escaping (AFDataResponse<Any>) -> Void) {
    let httpResponse = fakeResponse.response
    let data = fakeResponse.data
    let error = fakeResponse.error
    let result = Request.serializeResponseJSON(options: .allowFragments, response: httpResponse, data: data, error: error)

    guard let url = urlBuild(queryType: "q", from: "0", to: "10", uri: nil) else { return }
    let urlRequest = URLRequest(url: url)

    completionHandler(AFDataResponse(request: urlRequest, response: httpResponse, data: data, result: result))
}

我在Alamofire 5中遇到以下错误:类型“请求”没有成员“ serializeResponseJSON”。

我是使用Swift和Alamofire进行开发的新手,在Alamofire 5中找不到与Request.serializeResponseJSON等效的方法。

在此先感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

以前版本的Alamofire中的所有serialize方法都已重构为具体类型。例如,serializeResponseJSON已由JSONResponseSerializer替换,您可以将其与response(responseSerializer:)方法一起使用。但是,对于您的用法,您不需要直接创建实例,因为您可以将相同的参数传递给responseJSON。我建议您将responseDecodable类型的Decodable而不是responseJSON类型的使用,因为这将确保正确解析您的类型。

我还建议您通读我们的UsageAdvanced UsageAPI文档,并在开始使用Alamofire时找到一些较新的教程。