可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
When trying to create my own session object NSURLSession()
and request an url I get an unrecognized selector exception but when I use the shared session NSURLSession.sharedSession()
everything works fine. How come?
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!) }
回答1:
You have to init URLSession
with a configuration:
URLSession(configuration: .default)
or use shared session
URLSession.shared
回答2:
In SWIFT 3.0 and up:
URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in //Your code }).resume()
回答3:
Aside from the shared session NSURLSession
must be initialized with one of these two methods
init(configuration configuration: NSURLSessionConfiguration) init(configuration configuration: NSURLSessionConfiguration, delegate delegate: NSURLSessionDelegate?, delegateQueue queue: NSOperationQueue?)
回答4:
Do the initialization while declaration :-
var session = URLSession(configuration: .default)