iOS didRangeBeacons在didExitRegion之后调用

时间:2014-05-08 18:39:07

标签: ios objective-c cllocationmanager ibeacon

我在iOS中遇到了iBeacon监控的奇怪问题。

我正在进行的测试是,

1.开始监控信标区域。

2.等几秒钟,然后打开灯塔。

调用3.didEnterRegion,我调用startRangingBeacons。

4.我开始通过didRangeBeacons接收定期回调。

5.我关闭信标,继续获得didRangeBeacon回调一两秒钟。

6.然后我收到didExitRegion。

7.现在奇怪的是,我接着再打电话给didRangeBeacons。

如果我在此之后重新打开信标,则不会调用didEnterRegion,尽管调用了didExitRegion。看起来似乎是对theRangeBeacons的rougue调用意味着iOS现在认为信标再次处于范围内。

这是人们所期望的行为吗?或者这是否表明我的代码存在问题?

编辑:

我在运行7.0.6的iPhone 4上看到这种行为,如果我运行相同的测试,5C运行7.1和5S运行7.1.1,一切都很好。

1 个答案:

答案 0 :(得分:0)

我也不希望这种行为。但是,在didRangeBeacons:inRegion:的讨论中,它说:

  
    

只要信标在范围内或超出范围

,位置管理员就会调用此方法   

这可能是你在子弹7中提到的行为的解释。

但是,未提及此是否超出范围调用是在监视器委托调用之前还是之后执行的。同样,这也无法解释为什么您不再接听didEnterRegion:次来电。