2016-09-14 45 views
5

CLLocationManager.requestLocation()需要大約10秒才能觸發didUpdateLocations事件。CLLocationManager.requestLocation()大約需要10秒

這裏是爲CLLocationManager

let locationManager = CLLocationManager() 
locationManager.delegate = self 
locationManager.desiredAccuracy = kCLLocationAccuracyBest 
locationManager.distanceFilter = 10 
locationManager.requestWhenInUseAuthorization() 
locationManager.requestLocation() 

設置爲每documentation這可能需要幾秒鐘的屬性。

該方法立即返回。調用它會導致位置管理器獲取位置修正(可能需要幾秒鐘),並使用結果調用委託的locationManager(_:didUpdateLocations :)方法。

但這需要10秒鐘嗎?或者我錯過了什麼?

在此先感謝

+0

(可能需要幾秒鐘)。確保您從主隊列中更新UI –

+0

如果GPS尚未運行,則需要時間才能獲得準確的位置。如果找不到位置,放棄前可能需要超過10秒的時間。 – Paulw11

+4

感謝您的所有意見。 @SausageMachine我不是在抱怨,我想知道像Google地圖這樣的應用程序如何使用相同的「While using」位置訪問級別在3秒左右獲取位置信息。 @所有天才都下來選民,我問這是因爲我還沒有看到一個應用程序需要這麼多時間來獲取位置。請賜教。 –

回答

0

如果你切換出

locationManager.requestLocation() 

locationManager.startUpdatingLocation() 

然後didUpdateLocations將立即開始射擊。這應該可以解決你的問題。

相關問題