6

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

4

2 回答 2

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

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

于 2014-08-05T22:02:58.807 回答
2

SWIFT 4 中,您可以阻止所有区域被监控,例如

let monitoredRegions = locationManager.monitoredRegions

for region in monitoredRegions{
    locationManager.stopMonitoring(for: region)
}
于 2019-02-26T22:03:51.170 回答