我使用2个位置管理器为我的应用程序监控不同类型的区域(CLBeaconRegion& CLCircularRegion)。我读到了监测区域的20个限制。当我尝试调试时,我注意到我的monitoredRegion属性有超过20个区域。这是否意味着20的限制适用于每个位置管理器,但它们都共享相同的monitoredRegion属性(如果2个位置管理器使用限制是20 + 20 = 40)?
例如,如果经理A监控9个CLBeaconRegions而经理B监控20个CLCircularRegions,则每个监控器的monitoredRegion属性都为29.
答案 0 :(得分:1)
受监控区域是一个共享资源,这意味着您创建的每个CLLocationManager
实例实际上都在同一个受监控区域列表上运行。
您可以通过创建CLLocationManager" A"来检查它,开始使用它监视某个区域。然后创建一个CLLocationManager" B",并打印其monitoredRegions
属性。您将看到您开始监控的区域,即使它是在iOS上注册的不同CLLocationManager。
这个共享列表受20个区域的限制,这意味着无法通过创建更多CLLocationManage来绕过限制。
[你的monitoredRegions
如何以及为什么有超过20个条目是一件有趣的事情。我无法复制它。]