2016-10-03 58 views
3

當我更新到Alamofire v4時,出現了兩個錯誤。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, NSError> { request, response, data, 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, response, 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) 
    } 
} 

那麼是什麼原因造成的?

回答

3

更改第一

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

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

EDITED

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

let responseSerializer = DataResponseSerializer<SavedAdsWrapper> { request, response, data, error in 
+0

修復了第一個錯誤,但我仍然得到:使用未解析的標識符ResponseSerializer – user2636197

+0

是不是也一樣呢?嘗試DataResponseSerializer :) – Cruz

+0

我的不好!是一個錯字:) – user2636197

相關問題