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

时间:2017-05-09 23:49:16

标签: swift urlsession

我是斯威夫特的新手。我试图简单地读一个网页,我收到的错误“永久值'初始化'任务'从未使用过;考虑将其替换为'_'或删除它”错误“let task =”声明。这是我的代码(请原谅我的调试声明)。我做错了什么?

let urlPath = "http://www.stackoverflow.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")
}

1 个答案:

答案 0 :(得分:1)

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

let urlPath = "http://www.stackoverflow.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()