iOS 8 CLLocationManager enterRegion: ne pas être appelé si utiliser requestWhenInUseAuthorization

J'essaie d'être appelé la méthode déléguée locationManager: didEnterRegion dans iOS 8 pour la région personnalisée. Voici le code:

self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { [self.locationManager requestWhenInUseAuthorization]; } CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:CLLocationCoordinate2DMake(20, 20) radius:1000 identifier:@"asda"]; region.notifyOnEntry = YES; region.notifyOnExit = YES; [self.locationManager startMonitoringForRegion:region]; 

Il appelle méthode locationManager:didStartMonitoringForRegion , mais n'appelle pas les methods de région "enter" ou "exit".

La chose la plus étrange est que cela fonctionne si j'utilise requestAlwaysAuthorization pour locationManager. Mais je dois le faire fonctionner avec "When In Use".

Remarque: Dans iOS7, il fonctionne pour les methods WhenInUse et Always Authorization.

surveillance de région – cela ne fonctionne pas avec requestWhenInUseAuthorization

vérifiez Apple Docs: " .. “when-in-use” ... Apps cannot use any services that automatically relaunch the app, such as region monitoring or the significant location change service "

Vous devez appeler requestAlwaysAuthorization !!! https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/requestWhenInUseAuthorization