无法使用“(配置:URLSessionConfiguration)”类型的参数列表调用 'URLSession'

Cannot invoke 'URLSession' with an argument list of type '(configuration: URLSessionConfiguration)'

请注意,我已经尝试了很多解决方案,例如 this 和 none。

这里是 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 函数;

@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()
    }

}

注意:func URLSession(session *) 中的 *URLSession 和 *URLSessionConfiguration 给出相同的错误。

我遇到了同样的问题,解决方法是:

var session = Foundation.URLSession(configuration: configuration)

更改 URLSession 函数将解决问题。

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()
    }
}