我正在开发一个 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.
,但我认为这仍然意味着应该在您退出区域的那一刻触发一个事件。
我正在使用具有默认精度 ( ) 的 CLLocationManager并为我正在监视的每个区域kCLLocationAccuracyBest
调用一次。startMonitoringForRegion
有谁知道我看到的行为是否可以预期,或者我是否做错了什么?