2012-12-25 41 views
1

由于某些奇怪的原因,有时当我输入一个区域时,didEnterRegion被触发多达10次。有谁知道这可能发生的原因是什么?我知道如果我处于边界,可能会发生这种情况,但也许苹果在这些时候不会触发智能逻辑。didEnterRegion被触发很多次

这是怎么回事?

回答

1

我已经看到,当你有CLLocationManager实例化的多个实例。假设你有多个需要使用位置的类,你在应用程序生命周期中分配/初始化位置管理器4-5次......他们都在监听委托方法。

所以,如果我只有4-5个实例,为什么我会得到10个回调?很高兴你问。 :p我相信苹果的区域监控委托方法存在一个错误,每个实例触发两次。

解决方案是为位置管理器委托创建您自己的单例类,并仅为整个应用程序使用您的位置管理器的一个实例。这会阻止你获得4-5 x 2的回调。那么你只会像其他人一样得到2。

如果您想提供帮助,请在我对此问题的回答中复制雷达,以便我们可以让苹果一劳永逸地修复此问题。

why the didEnterRegion called twice ?

+0

确实是iOS7.1的行为好吗? – Jacky