我正在使用 NavigationController 来显示用户可用的地理围栏列表。在顶部有一个全局开/关开关,我想用它来禁用使用 CoreLocation -startMonitoringForRegion 注册的任何栅栏。
我的围栏似乎注册正常并且大部分时间都在工作,但无论我单独禁用围栏多少次,我仍然收到紫色位置箭头,表示系统仍在监控我的位置和/或围栏。
当我单独禁用我的栅栏时,我就是这样做的。
CLLocationCoordinate2D coord;
coord.latitude = [[settingsData valueForKey:@"latitude"] doubleValue];
coord.longitude = [[settingsData valueForKey:@"longitude"] doubleValue];
CLLocationDistance radius = [[settingsData valueForKey:@"radius"] intValue];
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:radius identifier:[settingsData valueForKey:@"name"]];
// remove this fence from system monitoring
[locationManager stopMonitoringForRegion:region];
[region release];
我已经阅读了 Apple 关于 CoreLocation 的所有文档以及这些方法的使用,但我已经走到了尽头。
我试过打电话[locationManager monitoredRegions];
,但它只返回活动围栏,只有当我加载了我的详细视图时。我无法在程序中的任何其他地方调用它并让它返回我的任何栅栏,即使我知道它们应该处于活动状态。如果有人对下一步去哪里有任何建议,我会全力以赴。