startMonitoringSignificantLocationChangements ne fonctionnant pas dans swift

J'avais ajouté CLLocationManager dans mon application en utilisant Swift dans le file AppDelegate.

Dans le file Appdelegate.swift,

import CoreLocation @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate { var locationManager: CLLocationManager! 

Dans la méthode didbecomeActive:

 func applicationDidBecomeActive(application: UIApplication) { if((locationManager) != nil) { locationManager.stopMonitoringSignificantLocationChanges() locationManager.delegate = nil locationManager = nil } locationManager = CLLocationManager() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.activityType = CLActivityType.OtherNavigation locationManager.requestAlwaysAuthorization() locationManager.startMonitoringSignificantLocationChanges() } 

Si j'utilise startUpdatingLocation , la méthode didUpdateLocations est appelée, mais pas startMonitoringSignificantLocationChanges .

Pourquoi cela n'est pas appelé pour startMonitoringSignificantLocationChanges . Je suis en train de tester cela dans le simulateur ios. Je ne sais pas comment save l'appareil.

Cela fonctionne, mais il est vraiment difficile de triggersr des changements de localization importants – cela se produit généralement lorsque l'appareil change de pylônes – je ne pense pas que ce soit possible avec le simulateur.

Vous devrez probablement prendre un vélo / voiture et voyager au less quelques kilomètres.

Il y a une astuce que vous pouvez utiliser, qui va triggersr un changement de lieu significatif:

Changer le mode Airplaine dans votre iPhone et désactiver avec quelques secondes à plusieurs resockets, il devrait tromper l'appareil en pensant qu'il a changé les tours de téléphonie cellulaire et triggersr le changement de lieu important.

entrez la description de l'image ici

Dans votre simulateur, allez à Debug-> Location-> Custom et changez l'location, puis testez-le.