didEnterRegion被多次触发

时间:2012-12-25 04:51:47

标签: objective-c ios core-location cllocationmanager

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

这是怎么回事?

1 个答案:

答案 0 :(得分:1)

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

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

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

如果你想提供帮助,请在我的回答中复制雷达,这样我们就可以让Apple一劳永逸地解决问题。

why the didEnterRegion called twice ?