2015-05-28 16 views
-1

Вы можете помочь мне в отношении мониторинга местоположения ... didenter и didexit никогда не называются. Кстати, я тестирую его на iphone. Есть ли что-то еще в коде, которое нужно изменить или добавить. Любая помощь приветствуется. спасибо.Мониторинг местоположения в iOS8 не работает

Ниже приведен код:

- (void)viewDidLoad { 

    _manager=[[CLLocationManager alloc]init]; 

    _mView.delegate=self; 

[_manager requestWhenInUseAuthorization]; 
_manager.delegate=self; 

_manager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters; 

_manager.distanceFilter=100; 

[_manager startUpdatingLocation]; 
_mView.showsUserLocation=YES; 

CLLocationCoordinate2D c; 
c.latitude=33.420647; 

c.longitude=-111.918893; 

c=CLLocationCoordinate2DMake(c.latitude, c.longitude); 

CLCircularRegion *circle=[[CLCircularRegion alloc]initWithCenter:c radius:100 identifier:@"string"]; 

if ([CLLocationManager isMonitoringAvailableForClass:[CLCircularRegion class]]) { 

NSLog(@"yes"); 

[ _manager startMonitoringForRegion:circle]; 

circle.notifyOnEntry=YES; 

circle.notifyOnExit=YES; 
} 


-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region{ 

    NSLog(@"Inside"); 

    UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"Monitoring" 
    message:@"Inside" preferredStyle:UIAlertControllerStyleAlert]; 

    UIAlertAction *action=[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
}]; 

    [alert addAction:action]; 

    [self presentViewController:alert animated:YES completion:nil]; 

} 


-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region{ 

    NSLog(@"Outside"); 

    UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"Monitoring" message:@"Outside" preferredStyle:UIAlertControllerStyleAlert]; 

    UIAlertAction *action=[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
}]; 

    [alert addAction:action]; 

    [self presentViewController:alert animated:YES completion:nil]; 

} 

ответ

0

вы должны удалить [_manager startUpdatingLocation] линии, я думаю, вам не нужно называть это потому, что вы хотите только мониторинг региона.

+0

проверьте этот ответ http://stackoverflow.com/questions/25178981/geo-fencing-didenterregion-and-didexitregion-methods-not-called –