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)