【发布时间】:2013-10-25 15:17:42
【问题描述】:
我正在开发一个 iOS 7 应用程序,该应用程序指定沿路线的一组 5 个区域,并在进入或退出某个区域时发送通知。
这些区域是圆形的,半径为 1 公里,它们不相邻,但它们之间有几公里的空间。有点像这样(O 是一个圆形区域,- 是它们之间的空间):
O----O---O-------O---O-----O---O
我已经在我的车里进行了一些测试,一切似乎都正常,除了一件事。 didExitRegion 调用不会在我实际离开某个区域时发生,而只会在我进入另一个区域时调用。事件日志如下所示:
2013-10-17 07:58:56 Entered region A
2013-10-17 08:10:05 Exited region A
2013-10-17 08:10:05 Entered region B
2013-10-17 08:26:15 Entered region C
2013-10-17 08:26:15 Exited region B
2013-10-17 08:51:52 Exited region C
2013-10-17 08:51:52 Entered region D
2013-10-17 09:19:04 Entered region E
2013-10-17 09:19:04 Exited region D
请注意,所有退出事件都与下一个区域的进入事件同时发生。
我一直在重新阅读 API 文档,并且确实注意到了 Only boundary crossings generate an event. 的评论,但我认为这仍然意味着应该在您退出区域的那一刻触发一个事件。
我正在使用具有默认精度 (kCLLocationAccuracyBest) 的 CLLocationManager,并为我正在监控的每个区域调用一次 startMonitoringForRegion。
有谁知道我看到的行为是否符合预期,或者我是否做错了什么?
【问题讨论】:
标签: ios ios7 core-location cllocationmanager geofencing