加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – Alamofire v4使用未声明的类型响应

发布时间:2020-12-14 17:47:40 所属栏目:百科 来源:网络整理
导读:当我更新到Alamofire v4时,我遇到了两个错误. 第一个是使用未声明的类型响应,我从这一行得到: func responseSavedAdsArray(_ completionHandler: (ResponseSavedAdsWrapper,NSError) - 第二个错误是使用我从此行获得的未解析的标识符ResponseSerializer: l
当我更新到Alamofire v4时,我遇到了两个错误.

第一个是使用未声明的类型响应,我从这一行得到:

func responseSavedAdsArray(_ completionHandler: (Response<SavedAdsWrapper,NSError>) ->

第二个错误是使用我从此行获得的未解析的标识符ResponseSerializer:

let responseSerializer = ResponseSerializer<SavedAdsWrapper,NSError> { request,response,data,error in

这是我的所有代码:

extension Alamofire.Request {
    func responseSavedArray(_ completionHandler: (Response<SavedWrapper,NSError>) -> Void) -> Self {
        let responseSerializer = ResponseSerializer<SavedWrapper,error in
            guard error == nil else {
                return .Failure(error!)
            }
            guard let responseData = data else {
                let failureReason = "Array could not be serialized because input data was nil."
                let userInfo: Dictionary<NSObject,AnyObject> = [NSLocalizedFailureReasonErrorKey: failureReason,Error.UserInfoKeys.StatusCode: response!.statusCode]
                let error = NSError(domain: Error.Domain,code: Error.Code.StatusCodeValidationFailed.rawValue,userInfo: userInfo)
                return .Failure(error)
            }

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

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

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

                var allSaved:Array = Array<Saved>()
                print(json)
                let results = json["saveditems"]["data"]
                print(results)
                for jsonAdata in results
                {

                    let adsJData = SavedAds(json: jsonAdata.1,id: Int(jsonAdata.0))
                    allSaved.append(adsJData)
                }
                wrapper.saveditems = allSaved
                return .Success(wrapper)
            case .Failure(let error):
                return .Failure(error)
            }
        }

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

那是什么导致了这个?

解决方法

先改变

func responseSavedAdsArray(_ completionHandler: (Response<SavedAdsWrapper,NSError>) ->

func responseSavedAdsArray(_ completionHandler: (DataResponse<SavedAdsWrapper>) ->

EDITED

let responseSerializer = ResponseSerializer<SavedAdsWrapper,error in

let responseSerializer = DataResponseSerializer<SavedAdsWrapper> { request,error in

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读