ロケーションマネージャを使用していくつか問題があります。 locationManager.requestWhenInUseAuthはアプリフローを停止せず、ユーザーがauth alertを却下する前にstartUpdatingLocationが呼び出されたようです。 これを避ける方法は?CLLocationManagerはユーザ認証の前にアップデートを開始します。Swift
私のアプリは利用できないGPSのデフォルト値を読み込むので、私はいつもデフォルトを取得しています(この機能は「このアプリを認証しますか?」という警告がまだ表示されているためです)。
マイコード:
if ask{
locationManager.requestWhenInUseAuthorization()
self.manageLocation()
}
func manageLocation(){
if CLLocationManager.locationServicesEnabled() {
switch(CLLocationManager.authorizationStatus()) {
case .notDetermined, .restricted, .denied:
// load default deck
self.loadBlink(useDefault: true)
case .authorizedAlways, .authorizedWhenInUse:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.distanceFilter = 10.0
locationManager.startUpdatingLocation()
}
} else {
// load default deck
self.loadBlink(useDefault: true)
}
}
場所のアクセス認証とアプリケーションの代理人のstartUpdatingLocationのコードを入れていますか? –
以前に許可を既に与えている場合は、ロケーションマネージャが場所の更新を開始します。 –
いいえ、どうですか? @HimanshuMoradiya –