2016-12-01 4 views
3

Обратите внимание, что я пробовал так много решений, как this, и никто не работал.Невозможно вызвать «URLSession» с помощью списка аргументов типа «(конфигурация: URLSessionConfiguration)»

здесь screenshot и код;

func downloadItems() { 

    let urlE: String = "http://alicelik.me/forios/service.php" 
    guard let url = URL(string: urlE) else { 
     print("Error: cannot") 
     return 
    } 

    let configuration = URLSessionConfiguration.default 
    var session = URLSession(configuration: configuration) 

    let task = session.dataTask(with: url as URL){ 
     (data, response, error) in 
     guard error == nil else { 
      print("error calling GET on /todos/1") 
      print(error) 
     } 
     return() 
    } 

    task.resume() 

} 

Это URLSession func;

@nonobjc func URLSession(session: URLSessionConfiguration, dataTask: URLSessionDataTask, didReceiveData data: NSData) { 
    self.data.append(data as Data); 

} 

@nonobjc func URLSession(session: URLSessionConfiguration, task: URLSessionTask, didCompleteWithError error: NSError?) { 
    if error != nil { 
     print("Failed to download data") 
    }else { 
     print("Data downloaded") 
     self.parseJSON() 
    } 

} 

Примечание: * URLSession и * URLSessionConfiguration в Func URLSession (сессия *) дает ту же ошибку.

+0

Он отлично работает на моем Xcode! –

+0

попробуйте новые коды функций. он покажет вам ошибку. Я забыл сначала. – Ali

+0

Не следует ли защищать ** пусть ** ошибка? – Honey

ответ

0

Изменение URLSession FUNC исправит проблему.

func downloadItems() { 
    let url: NSURL = NSURL(string: urlPath)! 
    var session = URLSession() 
    let configuration = URLSessionConfiguration.default 
    session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil) 
    let task = session.dataTask(with: url as URL) 
    task.resume() 
} 

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { 
    self.data.append(data as Data) 
} 

func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { 
    if error != nil { 
     print("Failed to download data") 
    } else { 
     print("Data downloaded") 
     self.parseJSON() 
    } 
} 
3

У меня была такая же проблема, решить ее:

var session = Foundation.URLSession(configuration: configuration)

+0

Изменить ['NSURLSession' с 'URLSession'] и ['URLSession' с 'urlSession'] отлично работает. – Ali

+0

Зачем мне нужно указывать Foundation для этого? Это было так, но я понятия не имею, почему. – Scooter

+0

Итак, проводной, но работайте. Thx ~ – Jerome