locationManager:didEnterRegion:只从某些位置移动时才被调用

问题描述:

我在使用CLLocationManager的startMonitoringForRegion:desiredAccuracy:监视区域。我知道该地区被正确添加到位置管理员的受监视的地区。locationManager:didEnterRegion:只从某些位置移动时才被调用

我设置了这个,而我的模拟器位置设置得离它很远(精确到2.3公里)。然后,我点击主页按钮,将模拟器的位置更改为我为其设置地理围栏的位置。 locationManager:didEnterRegion:不会被调用。如果我尝试移动到这个位置,但是从另一个位置,这个位于4.3公里以外的位置,则结果相同。

似乎有一些门槛,我不能拿起,因为locationManager:didEnterRegion:从7公里以上的其他位置移动时被调用。 但是我的CLRegion的半径是100米。这可能是什么问题?

+0

我在5.1 SDK的iOS模拟器中遇到过同样的问题。时间与安装iOS 6测试版3一致,但我不确定这是否是原因。 – 2012-08-06 16:24:16

这真的只是一个疯狂的猜测,但我想知道这是否是位置经理试图用一个似乎在跳跃的位置来减轻误报的结果。我想象,在应用程序被拒绝的情况下,在模拟器中更改位置可能会在位置管理器中显示为不符合所需准确性的位置更新,因此在考虑您是否实际进入了新区域时忽略了它。

你有没有试过模拟城市自行车骑行或高速公路驱动器,看看它是否有所作为?我只想尽快在设备上进行测试。

+0

事实上,如果你想做的是微调,看起来iOS监控器在iOS模拟器上不是很可靠。 – samvermette 2012-07-25 06:02:32

+0

即使位置变化很小,我仍然遇到此问题。你可以尝试我的脚本来模拟增量移动,看看这是否为你解决:https://github.com/yangmeyer/YMDevScripts – 2012-08-06 16:25:37