URLSession 错误
Posted
技术标签:
【中文标题】URLSession 错误【英文标题】:URLSession error 【发布时间】:2017-03-13 20:52:31 【问题描述】:我正在使用一个实际上是为 swift 2 编写的函数。我已经为 swift 3 进行了审核。但我一直收到错误:
URLSession' 产生 '()',而不是预期的上下文结果类型 '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()
有人知道我做错了什么吗?
【问题讨论】:
为什么URLSession
var
和隐式展开是可选的? URLSession(configuration...
返回非可选。并且 Swift 3 引入了 URL
替换 NSURL
看起来不错,在操场上工作。也许你需要一个 Clean / Clean Build Folder,或者文件前面有语法错误。
这在 Playground 中很奇怪我得到了同样的错误。我还修复了项目中的所有其他问题。我也试过这个,但仍然有同样的问题: func downloadItems() let url: URL = URL(string: urlPath)! let config = URLSessionConfiguration.default var session: URLSession session = URLSession(configuration: config, delegate: self, delegateQueue: nil) let task = session.dataTask(with: url as URL) task.resume()
【参考方案1】:
而不是:
session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
这样做:
session =
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
()
【讨论】:
【参考方案2】:将您的 URLSession 函数替换为:
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()
【讨论】:
以上是关于URLSession 错误的主要内容,如果未能解决你的问题,请参考以下文章
迁移到 Swift3 的问题,URLSession.GET 的编译错误
URLSession 实例方法`downloadTask` 错误