URLSession error

不想你离开。 提交于 2019-12-02 08:08:57

问题


I am using a function which was actually written for swift 2. I've made moderations for swift 3. But I keep getting the error:

URLSession' produces '()', not the expected contextual result type 'URLSession!

My code looks like this:

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

Anybody know what I am doing wrong?


回答1:


instead of :

 session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)

Do this:

   session = {
        let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
        return session
    }()



回答2:


Replace your URLSession functions with those:

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


来源:https://stackoverflow.com/questions/40347832/urlsession-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!