Можете ли вы запретить регионы оставаться между запусками с помощью CLLocationManager?

Есть ли способ предотвратить сохранение CLLocationManager из контролируемых областей между запусками? Каждый раз, когда приложение запускается, мне нужно добавить новый набор контролируемых регионов, а старые - больше не нужны. Есть ли способ предотвратить их сохранение или очистить все старые во время запуска?

1 ответ

Конечно, вы можете очистить все контролируемые в настоящее время регионы:

+(void)clearRegionWatch
{
 for(CLRegion *region in [[WGLocation shared].locationManager monitoredRegions]){
 [[WGLocation shared].locationManager stopMonitoringForRegion:region];
 }
}

Если у вас есть конкретный идентификатор, который вы хотите удалить:

+(void)clearRegionWatchForKey:(NSString *)key
{
 for(CLRegion *region in [[WGLocation shared].locationManager monitoredRegions]){
 if([region.identifier isEqualToString:key]){
 [[WGLocation shared].locationManager stopMonitoringForRegion:region];
 }
 }
}

Вы можете скопировать внутренности функции в соответствующее место в своем приложении. Я скопировал их из моего класса общего менеджера.

licensed under cc by-sa 3.0 with attribution.