AFNetworking Migration Swift

时间:2017-05-26 17:56:48

标签: swift afnetworking

我尝试使用AFNetworking向我自己的服务器发出HTTP POST请求:

let manager = AFHTTPSessionManager()
    manager.post(
        URL,
        parameters: params,
        success:
        {
            (operation, responseObject) -> Void in

            if let response = responseObject as? [String: String] {
                let alert = UIAlertController(title: response["status"],
                                              message: response["message"],
                                              preferredStyle: .alert)
                alert.addAction(UIAlertAction(title: "OK", style: .default) {_ in })
                self.present(alert, animated: true)
            }
        },
        failure:
        {
            (operation, error) -> Void in
            self.handleError(error as NSError)
        })

但是,我收到以下错误:

post(_:parameters:success:failure:) is deprecated

我搜索了AFNetworking迁移指南,但这似乎只提供了Objective-C中的说明,而不是Swift。我在Swift中找不到新的post方法。有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

post(_:parameters:success:failure:) is deprecated

未弃用的版本会添加progress:。所以在Swift中你使用post(_:parameters:progress:success:failure:),例如:

manager.post(URL, parameters: params,
                    progress: nil,
                     success: { (operation, responseObject) in },
                     failure: { (operation, error) in })

答案 1 :(得分:0)

如果你的项目是用Swift编写的,为什么不使用Alamofire

正如@luke-barry所解释的那样:

  

AFNetworking和Alamofire是由同一个人(Alamofire   软件基金会),Alamofire是他们的Swift版本   AFNetworking是Objective-C版本。

     

功能明智,他们是一样的。

有关详细信息,请参阅Swift Alamofire VS AFNetworking

希望这能帮到你!