我目前正在尝试制作天气应用。它使用http://developer.forecast.io API,它接受经度和纬度坐标来查找天气。我实现了OneShotLocationManager,但我无法从中获取坐标,然后将它们与Forecast API一起使用。
这是我的代码:
var manager: OneShotLocationManager?
let coordinate: (lat: Double, long: Double) = (0,0)
override func viewDidLoad() {
super.viewDidLoad()
manager = OneShotLocationManager()
manager!.fetchWithCompletion { location, error in
// fetch location or an error
if let loc = location {
print(location?.coordinate.latitude)
print(location?.coordinate.longitude)
let coordinate: (lat: Double, long: Double) = ((location?.coordinate.latitude)!,location!.coordinate.longitude)
} else if let err = error {
print(err.localizedDescription)
}
self.manager = nil
} }
我可以让OneShotLocationManager将坐标打印到控制台,但我无法弄清楚如何在Forecast.io中实际使用它们。对此的任何帮助将不胜感激。
答案 0 :(得分:1)
您不再需要使用location var,因此您需要执行 if let
检查。
试试这个:
if let loc = location {
let coordinate = (lat: loc.coordinate.latitude, long: loc.coordinate.longitude)
// ...your web API request stuff using coordinate....
}