iOS 8 CLLocationManager enterRegion: no se llama si se usa requestWhenInUseAuthorization

Estoy tratando de que me llamen el método delegado locationManager: didEnterRegion en iOS 8 para la región personalizada. Aquí está el código:

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];

Se llama métodolocationManager:didStartMonitoringForRegion, pero no llama a los métodos de región "entrar" o "salir".

Lo más extraño es que sí funciona si uso requestAlwaysAuthorization para locationManager. Pero necesito que funcione con "When In Use".

Nota: en iOS7 funciona tanto para los métodos WhenInUse y Always Authorization.

Respuestas a la pregunta(1)

Su respuesta a la pregunta