2

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

这是怎么回事??

4

1 回答 1

1

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

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

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

如果您愿意提供帮助,请在我对这个问题的回答中复制雷达,以便我们可以让 Apple 彻底解决这个问题。

为什么 didEnterRegion 调用了两次?

于 2013-01-02T20:49:48.430 回答