2014-10-12 91 views
2

我想用Swift使用NSURLSession在iOS应用中创建一个HTTP请求,但是XCode抛出一个错误。我一直在搜索整个stackoverflow和网络和我的代码是非常类似于人们的建议,但由于某种原因,它不起作用。我在XCode 6.0.1(6A317)上。用NSURLSession在Swift中的HTTP请求

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

错误指向上方第一行:“呼叫额外的参数‘completionHandler’”

使用尾随关闭抛出一个类似的错误:

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

的误差也在第一行:“在通话中的额外参数

我是否错过了在这里呢?

回答

2

显然,我发现了错误所在。 问题不是与NSURLSession(),但NSURL()

NSURL(string: url) 

错误现在已经走了。

3

简单的GET请求会是这样的:

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

'data','response'和'error'从哪里得到值?它们是封闭捕获的输出吗?这些参数如何获得它们的值? – Honey 2016-06-27 11:21:12

+0

这些值由NSURLSession传递到关闭 – mustafa 2016-06-27 11:45:19

+0

显然!我在问怎么!您没有使用'completionhandler'关键字[this](https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/#//apple_ref/occ/instm/NSURLSession/dataTaskWithURL :completionHandler:)...你只使用'dataTaskWithURL(_ :)'这意味着你不应该接收任何参数 – Honey 2016-06-27 11:50:09