JSONResponseSerializer&的Alamofire4麻烦HTTPURLResponse Swift 3.0 [英] Alamofire4 trouble with JSONResponseSerializer & HTTPURLResponse Swift 3.0

查看:146
本文介绍了JSONResponseSerializer&的Alamofire4麻烦HTTPURLResponse Swift 3.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

自更新Alamofire以来,出现以下错误:类型请求没有成员JSONResponseSerializer ,并且无法调用非功能类型HTTPURLResponse的值

Since I updated Alamofire I get the errors: Type Request has no member JSONResponseSerializer and cannot call value of non-function type HTTPURLResponse

我已经将Response切换为DataResponse,但仍然收到错误。

I have already switched Response to DataResponse but I still get the error.

代码:

extension Alamofire.Request {
    func responseUserEventsArray(_ completionHandler: @escaping (DataResponse<UserEventsWrapper>) -> Void) -> Self {
        let responseSerializer = DataResponseSerializer<UserEventsWrapper> { request, response, data, error in
            guard error == nil else
            {
                return .failure(error!)
            }
            guard let responseData = data else {
                return .failure(AFError.responseSerializationFailed(reason: .inputDataNil))

            }

            let JSONResponseSerializer = Request.JSONResponseSerializer(options: .allowFragments)
            let result = JSONResponseSerializer.serializeResponse(request, response, responseData, error)

            switch result {
            case .Success(let value):
                let json = JSON(value)
                let wrapper = UserEventsWrapper()

                wrapper.next = json["eventhistory"]["next_page_url"].stringValue
                wrapper.previous = json["eventhistory"]["prev_page_url"].stringValue
                wrapper.count = json["eventhistory"]["total"].intValue

                var allUserEvents:Array = Array<UserEvents>()
                print(json)
                let results = json["eventhistory"]["data"]
                print(results)

                for jsonAds in results
                {
                    print(jsonAds.1)
                    let adsData = UserEvents(json: jsonAds.1, id: Int(jsonAds.0))
                    allUserEvents.append(adsData)
                }
                wrapper.usereventsitems = allUserEvents
                return .success(wrapper)
            case .Failure(let error):
                return .Failure(error)
            }
        }

        return response(responseSerializer: responseSerializer,completionHandler: completionHandler)
    }
}


推荐答案

已编辑

更改

Request.JSONResponseSer ializer DataRequest.jsonResponseSerializer

扩展Alamofire.Request 扩展名Alamofire.DataRequest – Mat0

.success .failure -FranMowinckel

.success and .failure - FranMowinckel

这篇关于JSONResponseSerializer&amp;的Alamofire4麻烦HTTPURLResponse Swift 3.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆