当按下按钮时,我正在请求用户位置,然后触发API调用。但是,我不希望在从requestLocation()
调用获得纬度/经度值之前进行此API调用。我想我可以通过while循环检查是否我的可选变量latitude == nil || longitude == nil
,但是然后永远只是在while循环中。我需要等待某些值,因为如果我不这样做,它只会将nils发送到API调用,因为它需要几秒钟来获取位置。在从requestLocation()
调用设置纬度/经度值之前,我该怎么做才能确保不会调用API请求?
答案 0 :(得分:1)
使用CLLocationManagerDelegate
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
locationManager.stopUpdatingLocation()
let location = locations.last! as CLLocation
latittude = String(format: "%f", location.coordinate.latitude)
longitude = String(format: "%f", location.coordinate.longitude)
// call your api from here
}
希望这会帮助你。
感谢
答案 1 :(得分:0)
在更新位置的代理中进行api调用。 DidUpdateLocation。我完全不记得这个名字。
Didupdatelocations第一个位置将是旧位置,因此请确保您用于发送请求的位置接近准确。