我正在开发一个天气应用程序,并尝试从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()
答案 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!)
}