2017-05-12 1 views
1

J'essaie de comprendre pourquoi LocationManager continue de fournir des mises à jour après que je l'ai appelé stopUpdatingLocation()CoreLocation: LocationManager.stopUpdatingLocation() ne fonctionne pas

extension ActionViewController: CLLocationManagerDelegate { 
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     let newLocation: CLLocation = locations.last! 
     print("New Location Accuracy is: \(newLocation.horizontalAccuracy)") 
     print("Desired Accuracy is: \(locationManager.desiredAccuracy)") 
     if newLocation.horizontalAccuracy < 0 { 
      return 
     } 

     if newLocation.horizontalAccuracy <= locationManager.desiredAccuracy { 
      print("We are shutting down location manager") 
      locationManager.stopUpdatingLocation() 
      currentLocation = newLocation 
     let camera = GMSCameraPosition.camera(withLatitude: newLocation.coordinate.latitude, 
               longitude: newLocation.coordinate.longitude, 
               zoom: zoomLevel) 
... 

Imprimez de la zone de mise au point: Nouvelle précision de localisation est : 10.0 précision souhaitée est: 10.0 Nous sommes en train de fermer manager emplacement nouvel emplacement Précision est: 10.0 précision souhaitée est la suivante: 10,0 Nous sommes en train de fermer manager emplacement nouvel emplacement Précision est: 10.0 Précision souhaitée: 10 .0 Nous fermons manager emplacement nouvel emplacement Précision est: 702,317035988665 précision souhaitée est: 10.0 Nouvelle précision de localisation est: 702,318123337466 précision souhaitée est: 10.0 Nouvelle précision de localisation est: 10.0 précision souhaitée est: 10.0 Nous éteignez le gestionnaire de l'emplacement

+1

Je pense que vous devriez appeler 'manager.stopUpdatingLocation()' au lieu de 'locationManager.stopUpdatingLocation()'. – ozgur

+0

J'ai peur que cela n'a pas fonctionné. –

+0

Etes-vous sûr que "" Nous arrêtons le gestionnaire d'emplacement "est imprimé? – ozgur

Répondre

0

J'ai passé de nombreuses heures à chercher la réponse et je crois que je l'ai trouvé. Apparemment, après avoir appelé stopUpatingLocation, il faut quelques secondes pour que les antennes GPS s'éteignent. Quelqu'un a posté que cela a été discuté à une WWDC.

Here is the post