Ответ 1
Вы должны init URLSession
с конфигурацией:
URLSession(configuration: .default)
или использовать общий сеанс
URLSession.shared
При попытке создать свой собственный объект сеанса NSURLSession()
и запросить url я получаю исключение исключенного исключения, но когда я использую общий сеанс 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!)
}
Вы должны init 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)