【问题标题】:HTTP Request in Swift with NSURLSession带有 NSURLSession 的 Swift 中的 HTTP 请求
【发布时间】:2014-10-12 11:10:45
【问题描述】:

我正在尝试使用 NSURLSession 在带有 Swift 的 iOS 应用程序中发出 HTTP 请求,但 XCode 会引发错误。我一直在搜索stackoverflow和网络,我的代码与人们建议的非常相似,但由于某种原因它不起作用。我在 XCode 6.0.1 (6A317) 上。

var session = NSURLSession.sharedSession().dataTaskWithURL(NSURL(url),
    completionHandler : {(data, response, error) -> Void in
        println("Done")
})
session.resume()

错误指向上面第一行:“Extra argument 'completionHandler' in call

使用尾随闭包会引发类似的错误:

var session = NSURLSession.sharedSession().dataTaskWithURL(NSURL(url)) {(data, response, error) -> Void in
    println("Done")
}
session.resume()

错误也在第一行:“Extra argument in call

我错过了什么吗?

【问题讨论】:

    标签: ios xcode swift nsurlsession


    【解决方案1】:

    简单的获取请求是这样的:

    let task = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: "url_here")) { data, response, error in
    }
    task.resume()
    

    【讨论】:

    • dataresponseerror 从哪里获得价值?它们是闭包捕获的输出吗?这些参数如何获得它们的值?
    • 这些值由 NSURLSession 传递给闭包
    • 显然!我问怎么做!你没有使用completionhandler关键字this...你只使用dataTaskWithURL(_:)这意味着你不应该收到任何参数
    • 这只是示例代码。对于您的实际应用程序,您需要使用这些值。也许我应该在闭包内添加注释行,说明在此处使用您的回复
    • 示例代码是什么意思?它可以像你写的那样使用。见here。您介意为您的答案添加更多解释吗?
    【解决方案2】:

    显然我发现了错误在哪里。 问题不在于NSURLSession(),而在于NSURL()

    NSURL(string: url)
    

    错误现在消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-10
      • 2016-09-19
      • 2017-08-16
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      相关资源
      最近更新 更多