swift3 获取不可变值 'task' 的初始化从未在 URLSession.shared.dataTask 上使用(使用:url!)

swift3 getting Initialization of immutable value 'task' was never used on URLSession.shared.dataTask(with: url!)

我是 Swift 的新手。我试图简单地阅读网页,但在 "let task = " 语句中收到错误 "Initialization of immutable value 'task' was never used; consider replacing it with assignment to '_' or removing it" 错误。这是我的代码(请原谅我的调试语句)。我做错了什么?

let urlPath = "http://www.whosebug.com"
let url = URL(string: urlPath)
let session = URLSession.shared
let task = session.dataTask(with:url!) { (data, response, error) -> Void in
    if (error == nil) {
        print("inside If")
        print(data)
    } else {
        print("inside Else")
        print(error)
    }
    print("after If Else")
}

您看到的实际上是一个警告,编译器告诉您您初始化了一个变量但从未使用过它。一般来说,您可以将变量名替换为 _ 或完全删除声明,因为您没有使用它(或者忽略警告)。但是,在您的情况下,您实际上需要它,在初始化数据任务后,您实际上并没有使用它,这就是为什么您没有看到任何打印语句被输出的原因。要解决此问题,请调用 task.resume()。这样做也会删除警告,因为您现在实际上正在使用该变量。

let urlPath = "http://www.whosebug.com"
let url = URL(string: urlPath)
let session = URLSession.shared
let task = session.dataTask(with:url!) { (data, response, error) -> Void in
    if (error == nil) {
        print("inside If")
        print(data)
    } else {
        print("inside Else")
        print(error)
    }
    print("after If Else")
}
task.resume()