didEnterRegion 被多次触发
Posted
技术标签:
【中文标题】didEnterRegion 被多次触发【英文标题】:didEnterRegion gets triggered many times 【发布时间】:2012-12-25 04:51:47 【问题描述】:由于某些奇怪的原因,有时当我进入一个区域时,didEnterRegion 会被触发多达 10 次。有谁知道发生这种情况的可能原因是什么?我知道如果我在边界上可能会发生这种情况,但也许 Apple 的智能逻辑不会在这些点触发。
这是怎么回事??
【问题讨论】:
【参考方案1】:我已经看到,当您实例化 CLLocationManager 的多个实例时。假设您有多个需要使用位置的类,您在应用程序生命周期中分配/初始化位置管理器 4-5 次......它们都在监听委托方法。
那么,如果我只有 4-5 个实例,为什么我会收到 10 个回调?很高兴你问。 :p 我相信 Apple 的区域监控委托方法中存在一个错误,该方法会为每个实例触发两次。
解决方案是为位置管理器委托创建您自己的单例类,并将位置管理器的一个实例用于整个应用程序。这将阻止您获得 4-5 x 2 回调。那么你只会像其他人一样得到 2 个。
如果您愿意提供帮助,请在我对这个问题的回答中复制雷达,以便我们可以让 Apple 彻底解决问题。
why the didEnterRegion called twice ?
【讨论】:
ios7.1 行为正常吗?以上是关于didEnterRegion 被多次触发的主要内容,如果未能解决你的问题,请参考以下文章
CoreLocation startMonitoringRegion 未触发 didenterregion /didexitregion 代表
iOS Beacon Monitoring - didEnterRegion 仅在受监控区域触发 didExitRegion 后调用
locationManager:didEnterRegion:在没有位置更改的情况下触发
对于具有不同 UUID、major 和 minor 的多个 iBeacon,仅触发一次 didEnterRegion 事件