多个CLLocationManagers有超过20个受监控区域

时间:2016-01-25 19:32:54

标签: ios objective-c cllocationmanager ibeacon geofencing

我使用2个位置管理器为我的应用程序监控不同类型的区域(CLBeaconRegion& CLCircularRegion)。我读到了监测区域的20个限制。当我尝试调试时,我注意到我的monitoredRegion属性有超过20个区域。这是否意味着20的限制适用于每个位置管理器,但它们都共享相同的monitoredRegion属性(如果2个位置管理器使用限制是20 + 20 = 40)?

例如,如果经理A监控9个CLBeaconRegions而经理B监控20个CLCircularRegions,则每个监控器的monitoredRegion属性都为29.

1 个答案:

答案 0 :(得分:1)

受监控区域是一个共享资源,这意味着您创建的每个CLLocationManager实例实际上都在同一个受监控区域列表上运行。

您可以通过创建CLLocationManager" A"来检查它,开始使用它监视某个区域。然后创建一个CLLocationManager" B",并打印其monitoredRegions属性。您将看到您开始监控的区域,即使它是在iOS上注册的不同CLLocationManager。

这个共享列表受20个区域的限制,这意味着无法通过创建更多CLLocationManage来绕过限制。

[你的monitoredRegions如何以及为什么有超过20个条目是一件有趣的事情。我无法复制它。]