是否有一种方法可以防止CLLocationManager在启动之间持久化监控区域?每次应用程序启动时,我都需要添加一组新的监控区域,而旧的区域不再有用。是否有办法防止它们持续存在或在发布时清除所有旧的?
当然您可以清除当前监视的所有区域:
+(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];
}
}
}
可以将函数的内部结构复制到应用程序中的适当位置。我从我的共享管理器类中复制的。
In SWIFT 4您可以像
这样停止监视所有区域let monitoredRegions = locationManager.monitoredRegions
for region in monitoredRegions{
locationManager.stopMonitoring(for: region)
}