2016-07-15 242 views
1

當按下按鈕然後觸發API調用時,我正在請求用戶位置。但是,我不希望在調用requestLocation()調用獲得經度/緯度值之前進行此API調用。我以爲我可以用一個while循環進行輪詢,檢查我的可選變量latitude == nil || longitude == nil,但只是永遠坐在while循環中。我需要有一些等待這些值,因爲如果我不這樣做,它只會發送nils到API調用,因爲它需要幾秒鐘的時間來獲取位置。除非經由requestLocation()呼叫設置緯度/經度值,否則我將如何確保API請求未被調用?如何在繼續之前等待requestLocation?

+1

取而代之的按鈕被按下時進行呼叫,撥打電話,當您收到經/緯度值 –

+0

添加完成處理? – Dershowitz123

回答

0

在位置正在更新的代理中進行api調用。 DidUpdateLocation。我完全不記得名字。

Didupdatelocations的第一個位置將是一個較舊的位置,因此請確保您用來發送請求的位置接近於準確。

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 

} 

希望這會幫助你的這種委託方法調用您的API。

THANKS

相關問題