プログラムでユーザーの位置を地図に表示したい。最初は動作していたがランダムに停止したので、以下のコードを追加して修正しようとしたが、問題が発生した。前もって感謝します!
override func viewDidLoad()
{
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.locationServicesEnabled()
{
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
if status == CLAuthorizationStatus.NotDetermined
{
locationManager.requestAlwaysAuthorization()
}
} else {
print("locationServices disenabled")
}
locationManager.startUpdatingLocation()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
mapView.delegate = self
centerMapOnLocation(initialLocation)
addBoundry()
}
あなたは電話する必要がありました、
locationManager.requestAlwaysAuthorization()
同様に
locationManager.requestWhenInUseAuthorization()
フォアグラウンドでも位置をスムーズに使用するために!
startupdatinglocation
を呼び出すために2つのインスタンスは必要ありません。 1つ保持します。スコープ全体の場所を取得するには、ローカルではなくインスタンス変数またはグローバル変数を使用する必要があります。
更新:
info.plist
のように、NSLocationAlwaysUsageDescription
とNSLocationWhenInUseUsageDescription
の2つのキーを使用法の説明とともに設定する必要があります。
Info.plistのNSLocationAlwaysUsageDescription
およびNSLocationWhenInUseUsageDescription
setを使用しても、同じ問題が発生していました。デバッガーはNSLocationAlwaysAndWhenInUseUsageDescription
...も設定するように指示したので、設定しました。動いた!