【发布时间】:2016-11-07 21:47:01
【问题描述】:
我正在尝试从用户当前位置检索温度。
我正在使用 OpenWeatherMap 的 API。问题是,他们默认提供开尔文的温度,我想要摄氏度。
我知道我只需要从开尔文值中减去 273.15....?但我正在努力弄清楚在哪里做。
我设置标签的代码:
var jsonData: AnyObject?
func setLabels(weatherData: NSData) {
do {
self.jsonData = try NSJSONSerialization.JSONObjectWithData(weatherData, options: []) as! NSDictionary
} catch {
//handle error here
}
if let name = jsonData!["name"] as? String {
locationLabel.text = "using your current location, \(name)"
}
if let main = jsonData!["main"] as? NSDictionary {
if let temperature = main["temp"] as? Double {
self.tempLabel.text = String(format: "%.0f", temperature)
}
}
}
谁能帮我解决这个问题,因为我真的不知道从哪里开始,谢谢。
如果您需要查看我的更多代码,请告诉我。
【问题讨论】:
-
仅供参考 - 从 iOS 10 / MacOS Sierra 开始,Apple 已在 Foundation 中引入了一个测量和单位 API,它可以为您处理转换和本地化。文档链接:developer.apple.com/reference/foundation/nsmeasurement 以及免费的 WWDC 视频:developer.apple.com/videos/play/wwdc2016/238
标签: ios json swift double openweathermap