Можете ли вы помешать регионам сохраняться между запусками с 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];
}
}
}
Вы можете скопировать внутреннюю часть функции в соответствующее место в вашем приложении. Я скопировал их из моего общего класса менеджера.
В SWIFT 4 вы можете остановить мониторинг всех регионов, как
let monitoredRegions = locationManager.monitoredRegions
for region in monitoredRegions{
locationManager.stopMonitoring(for: region)
}