2016-09-14 11 views
5

CLLocationManager.requestLocation()は、didUpdateLocationsイベントを起動するのに約10秒かかります。ここでCLLocationManager.requestLocation()に約10秒かかる

が、これは数秒かかることがdocumentationを1としてCLLocationManager

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

に設定された属性です。

このメソッドはすぐに戻ります。これを呼び出すと、ロケーションマネージャーはロケーションフィックス(数秒かかる場合があります)を取得し、デリゲートのlocationManager(_:didUpdateLocations :)メソッドでその結果を呼び出します。

しかし、これは10秒もかかりますか?または私は何かを逃していますか?あなたは

locationManager.startUpdatingLocation() 

ため

locationManager.requestLocation() 

を切り替える場合は、事前

+0

(数秒かかる場合があります)。メインキューからUIを更新することを確認してください –

+0

GPSがまだ実行されていない場合、正確な位置を取得するには時間がかかります。場所が見つからない場合は、10秒以上かかることがあります。 – Paulw11

+4

コメントありがとうございます。 @SausageMachine Google Mapsのようなアプリが、「使用中」の位置情報アクセスレベルを使用して3秒ほどで位置情報を取得する方法は不思議です。 @すべての天才有権者、私は場所を取得するためにこの多くの時間を取っているアプリを見ていないので、私はこれを求めています。私を教えてください。 –

答えて

0

おかげで、その後didUpdateLocationsはすぐに発射開始します。これはあなたの問題を解決するはずです。

関連する問題