Alamofire Swift 3 - 呼叫错误中的额外争议

时间:2016-11-13 05:47:39

标签: swift3 alamofire xcode8

Xcode迫使我将一些旧的swift 2.3语法更新为3.0。 Alamofire是4.0.1。在尝试构建项目时,它会因调用中的额外参数错误而失败。

Alamofire.request(url, .GET, parameters: ["part":"snippet,contentDetails", "key": API_KEY,"maxResults":50, "channelId":channelId], encoding: ParameterEncoding.URL, headers: nil).responseJSON { (response) in

如何解决此问题。它出现在项目中的6个以上的文件中。几乎完全相同的错误。

2 个答案:

答案 0 :(得分:2)

进行如下呼叫

Alamofire.request(url, 
                  parameters: ["part":"snippet,contentDetails", "key": API_KEY,"maxResults":50, "channelId":channelId], 
                  encoding: URLEncoding.default)
         .responseJSON { (response) in
}

我希望它能运作...有关详细信息,请查看链接 https://github.com/Alamofire/Alamofire#get-request-with-url-encoded-parameters

答案 1 :(得分:2)

迁移 Swift 2.3 Swift 3 后,您还需要更改为Alamofire Library方法,需要像这样调用

Swift 3

      let parameters = ["action":"cms", "id":"1"]

      Alamofire.request("Your webAPI link here", method: .get, parameters: parameters)
                .responseJSON { response in

                    print("Success: \(response.result.isSuccess)")
                    print("Response String: \(response.result.value)")
                    switch response.result {
                    case .success:
                        self.successGetTermsData(response.result.value! as AnyObject)
                    case .failure(let error):
                        self.failedGetData()
                        print(error)
                    }
            }

为了更好地理解,您还可以查看 - Alamofire 4.0 Migration Guide