Lorsque j'essaie de créer mon propre objet de session NSURLSession()
et de demander une URL, j'obtiens une exception de sélecteur non reconnue, mais lorsque j'utilise la session partagée NSURLSession.sharedSession()
tout fonctionne bien. Comment venir?
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!)
}
Vous devez init URLSession
avec une configuration:
URLSession(configuration: .default)
ou utiliser une session partagée
URLSession.shared
Dans Swift 3.0 et plus:
URLSession.shared.dataTask(with: url, completionHandler:
{
(data, response, error) in
//Your code
}).resume()
Mis à part la session partagée, NSURLSession
doit être initialisé avec l'une de ces deux méthodes
init(configuration configuration: NSURLSessionConfiguration)
init(configuration configuration: NSURLSessionConfiguration,
delegate delegate: NSURLSessionDelegate?,
delegateQueue queue: NSOperationQueue?)
Faire l'initialisation lors de la déclaration: -
var session = URLSession(configuration: .default)