我想使用OpenWeatherMap Api编写天气应用程序。一切对我来说都很好。该应用是使用网络上的教程编写的,一切看起来都是1:1。
let weatherURL = URL(string: "http://api.openweathermap.org/data/2.5/weather?q=Warsaw,pl?&units=imperial&APPID=cb9325925ed023b38a64c3d8da3c345c")!
let dataTask = session.dataTask(with: weatherURL) {
(data: Data?, response: URLResponse?, error: Error?) in
if let error = error {
print("Error:\n\(error)")
} else {
if let data = data {
let dataString = String(data: data, encoding: String.Encoding.utf8)
print("All the weather data:\n\(dataString!)")
if let jsonObj = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? NSDictionary {
if let mainDictionary = jsonObj.value(forKey: "main") as? NSDictionary {
if let temperature = mainDictionary.value(forKey: "temp") {
DispatchQueue.main.async {
self.weatherLabel.text = "Temperatura w Warszawie: \(temperature)°C"
}
}
} else {
print("Error: unable to find temperature in dictionary")
}
} else {
print("Error: unable to convert json data")
}
} else {
print("Error: did not receive data")
}
}
}```
答案 0 :(得分:0)
问题在于您的代码
let weatherURL = ...
let dataTask = ...
...需要在某些结构或类的方法中。如果您查看原始教程,就会发现是这种情况。您的代码只是在不允许执行代码的地方公开地闲逛。