为什么Swift打印"可选(455字节)"

时间:2016-10-11 19:36:27

标签: ios swift swift3

我正在开发一个天气应用程序,并尝试从API获取数据。但是当我输入一个城市名称并点击输入时,Swift打印出一条消息"可选(455字节)"不确定出了什么问题。

import Foundation

protocol WeatherServiceDelegate{
    func setWeather(weather:Weather)
}

class WeatherService{
    var delegate: WeatherServiceDelegate?

    func getWeather(city: String){
        let path = "http://api.openweathermap.org/data/2.5/weather?q=Boston"
        let url = URL(string: path)

        let task = URLSession.shared.dataTask(with: url!) { (data:Data?, response: URLResponse?, error: Error?) in
            print(data)
        }

        task.resume()

4 个答案:

答案 0 :(得分:3)

哦,所以这里是解码部分,万一有人还在寻找它。

<Access origin = "*" />

答案 1 :(得分:2)

没有错,您要做的是,从Data类型的可选变量data打印iOS编码Data?

您应该在解码后检查响应。

干杯!

答案 2 :(得分:0)

data是可选类型Data?。在Swift中,您可以打开这样的选项:

    if let data = data {
        print(data)
    }

这意味着if语句内部数据不再是可选类型,且类型为Data。由于它已被解包,它将不再在控制台中打印“Optional()”文本。

答案 3 :(得分:0)

好的,因为您要为数据分配值,您可以排除剩余的可能性= nil。所以你可以使用数据!自动解包值:

let task = URLSession.shared.dataTask(with: url!) { (data:Data?, response: URLResponse?, error: Error?) in print(data!) }