你能用CLLocationManager阻止区域在启动之间保持不变吗?

时间:2014-08-05 21:50:30

标签: ios core-location geofencing clregion clcircleregion

有没有办法防止CLLocationManager在启动之间持久监控区域?每次启动应用程序时,我都需要添加一组新的受监控区域,而旧区域则不再有用。是否有办法阻止它们在发布时持续或清除所有旧的?

2 个答案:

答案 0 :(得分:5)

当然,您可以清除当前监控的所有区域:

+(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];
        }
    }
}

您可以将函数的内部复制到应用程序中的适当位置。我已经从我的共享经理课程中复制了它们。

答案 1 :(得分:0)

SWIFT 4 中 您可以像这样

阻止所有区域受到监视
let monitoredRegions = locationManager.monitoredRegions

for region in monitoredRegions{
    locationManager.stopMonitoring(for: region)
}