我正在为我的应用使用 2 个位置管理器来监控不同类型的区域(CLBeaconRegion 和 CLCircularRegion)。我阅读了有关受监控区域的 20 个限制。当我尝试调试时,我注意到我的受监控区域属性有 20 多个区域。这是否意味着 20 的限制适用于每个位置管理器,但它们都共享相同的受监控区域属性(如果有 2 个位置管理器使用限制是 20+20 = 40)?
例如,如果经理 A 监控 9 个 CLBeaconRegions,经理 B 监控 20 个 CLCircularRegions,则每个监控器的受监控区域属性将为 29。
Best Answer-推荐答案 strong>
受监控区域是一种共享资源,这意味着您创建的每个 CLLocationManager 实例实际上都在同一个受监控区域列表上运行。
您可以通过创建 CLLocationManager "A"来检查,使用它开始监视区域。然后创建一个 CLLocationManager "B",并打印它的 monitoredRegions 属性。您将看到您开始监视的区域,即使它是在 iOS 中注册的不同 CLLocationManager。
正是这个共享列表受制于 20 个区域的限制,这意味着无法通过创建更多 CLLocationManager 来绕过限制。
[虽然您的 monitoredRegions 有超过 20 个条目的方式和原因是一件有趣的事情。我无法复制它。]
关于ios - 多个 CLLocationManager 有超过 20 个被监控的区域,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/35000776/
|