2017-04-13 63 views
0

我是新手,我有一个错误,我不知道如何解决,所以我将不胜感激所有的帮助。我从2迅速迁移到SWIFT 3,我得到这个错误:表达式类型'DataRequest'含糊不清,没有更多的上下文Swift 3

Expression type 'DataRequest' is ambiguous without more context

这里是我的代码:

static func renewToken(_ onSuccess: @escaping (JSON) -> Void, onFailure: @escaping (NSError) -> Void) { 

    let token = DataManager.token?.token 
    let header = ["Authorization": "Bearer "+token!] 

    Alamofire.request("\(BASE_URL)\(RENEWTOKEN_PATH)", method: .get, parameters: nil, encoding: .JSONEncoding.default, headers: header) 
     .validate() 
     .responseJSON { response in 
      switch response.result{ 
      case .Success(let jsonObj): 
       onSuccess(JSON(jsonObj)) 


      case .Failure(let error): 
       onFailure(error) 
      } 
    } 
} 
+0

您的问题*不明确,没有更多的上下文*。请显示'DataRequest'的声明。 – vadian

回答

0

你的错误是在误导你需要使你的代码3度的变化。

  1. 与编码它不是.JSONEncoding.default而只是JSONEncoding.default
  2. 随着Alamofire 4.*Swift 3.*情况下.Success和结果enum.Failure以小写现在写这样.success.failure
  3. 从Swift 3使用Error而不是NSError

所以整个代码都是这样的。

static func renewToken(_ onSuccess: @escaping (JSON) -> Void, onFailure: @escaping (Error) -> Void) { 

    let token = "" 
    let header = ["Authorization": "Bearer "+token] 

    Alamofire.request("", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: header) 
     .validate() 
     .responseJSON { response in 
      switch response.result{ 
      case .success(let jsonObj): 
       onSuccess(JSON(jsonObj)) 


      case .failure(let error): 
       onFailure(error) 
      } 
    } 
} 
+0

谢谢soooo多!这个。是问题!祝你有美好的一天! – nasamo

相关问题