NSURLSession dataTaskForRequest:完成:发送给实例的无法识别的select器

当试图创build我自己的会话对象NSURLSession()和请求一个URL我得到一个无法识别的select器exception,但是当我使用共享会话NSURLSession.sharedSession()一切工作正常。 怎么来的?

 var url = NSURL(string: "http:/www.google.com") if url != nil { //throws unrecognized selector when dataTaskWithURL is called let session=NSURLSession() session.dataTaskWithURL(url!) //works let sharedSession=NSURLSession.sharedSession() sharedSession.dataTaskWithURL(url!) } 

您必须使用configuration来初始化URLSession

 URLSession(configuration: .default) 

或使用共享会话

 URLSession.shared 

在SWIFT 3.0中:

  let task = URLSession.shared.dataTask(with: url) task.resume() 

要么

  let task = URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in //Your code }) task.resume() 

除了共享会话NSURLSession必须用这两种方法之一来初始化

 init(configuration configuration: NSURLSessionConfiguration) init(configuration configuration: NSURLSessionConfiguration, delegate delegate: NSURLSessionDelegate?, delegateQueue queue: NSOperationQueue?) 

声明时进行初始化: –

 var session = URLSession(configuration: .default)