locationManager:didEnterRegion:只调用一次?

时间:2011-11-14 08:27:50

标签: ios core-location

我已经实施了区域监控,它运行正常。我的测试应用程序在应用程序启动时开始监控某个区域,然后我调用startUpdatingLocation更新地图上的图钉以显示我的位置。然后,使用XCode位置模拟从孟买跳到旧金山到伦敦等。

地图已正确更新(didUpdateToLocation已调用),第一次跳到旧金山(我在该地区注册)时,我得到了正确的日志。但如果我继续跳转,当我返回旧金山时,didEnterRegion未被呼叫,但我仍然在我的monitoredRegions位置管理员中拥有此位置。

为什么didEnterRegion只调用一次?

1 个答案:

答案 0 :(得分:2)

使用区域监控方法时,无需使用-didUpdateToLocation主动监控位置。您需要确保正确设置必需品,以便在触发事件时应用程序从操作系统接收回调。

  • 您的AppDelegate应该有一个locationManager的实例并且正在侦听。
  • 您需要在AppDelegate中配置didEnterRegion和didExitRegion方法(或者设置locationManagerDelegate的地方)
  • 确保正确创建区域以进行监控。 CLRegion采用点(长,纬度)和半径。使用startMonitoringForRegion方法添加要监视的内容。

这就是真的。我也遇到了这些问题,主要是确保你的CLLocationManagerDelegate被配置为处理来自操作系统的区域事件的回调。希望这会有所帮助。