startMonitoringForRegion не работает - PullRequest
0 голосов
/ 08 сентября 2010

Я хочу напоминание на основе местоположения, когда пользователь достигает определенного региона

Для этого я написал следующий код

CLLocationManager *manager=[[CLLocationManager alloc] init];
manager.desiredAccuracy=kCLLocationAccuracyBest;

manager.delegate=self;

CLLocationCoordinate2D loc;

loc.latitude=LReminder.lat;

loc.longitude=LReminder.lon;

CLRegion *region=[[CLRegion alloc] initCircularRegionWithCenter:loc
radius:LReminder.accuracy dentifier:LReminder.title];

CLLocationAccuracy acc=1.0;

[manager startMonitoringForRegion:region desiredAccuracy:acc];

[manager startMonitoringSignificantLocationChanges];

А для руководителя делегата

-(void)locationManagerCLLocationManager *)manager didEnterRegionCLRegion *)region
{

    NSLog(@"didEnterRegion for %@",region.identifier);

    UIAlertView *alr=[[UIAlertView alloc] initWithTitle:@"Reminder didEnterRegion" 
message:region.identifier delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];

    [alr show];

    [alr release];
}

-(void)locationManagerCLLocationManager *)manager didExitRegionCLRegion *)region
{
    NSLog(@"didExitRegion for %@",region.identifier);

    UIAlertView *alr=[[UIAlertView alloc] initWithTitle:@"Reminder didExitRegion" message:region.identifier delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];

    [alr show];

    [alr release];
}

Проблема в том, что когда я дохожу до места напоминания, он не вызывает ни один из методов делегатов

пожалуйста, помогите мне

1 Ответ

2 голосов
/ 16 октября 2010

Не зная больше, я могу только догадываться, но держу пари, что вы не используете iPhone 4. Мониторинг региона в настоящее время работает только на iPhone 4.

Вы должны использовать:

[CLLocationManager regionMonitoringEnabled]

, чтобы определить, может ли ваше устройство использовать мониторинг региона.

...