Ios 多个CLLocationManager有20多个受监控的区域

Ios 多个CLLocationManager有20多个受监控的区域,ios,objective-c,cllocationmanager,ibeacon,geofencing,Ios,Objective C,Cllocationmanager,Ibeacon,Geofencing,我正在为我的应用程序使用2个位置管理器来监视不同类型的区域(CLBeaconRegion和CLCircularRegion)。我读到了关于20个监测区域的限制。当我尝试调试时,我注意到我的monitoredRegion属性有20多个区域。这是否意味着20的限制适用于每个地点经理,但他们都共享相同的monitoredRegion属性(如果有两个地点经理使用,则限制为20+20=40) 例如,如果管理器A监视9个CLBeaconRegions,而管理器B监视20个CLCircularRegion,则

我正在为我的应用程序使用2个位置管理器来监视不同类型的区域(CLBeaconRegion和CLCircularRegion)。我读到了关于20个监测区域的限制。当我尝试调试时,我注意到我的monitoredRegion属性有20多个区域。这是否意味着20的限制适用于每个地点经理,但他们都共享相同的monitoredRegion属性(如果有两个地点经理使用,则限制为20+20=40)


例如,如果管理器A监视9个CLBeaconRegions,而管理器B监视20个CLCircularRegion,则每个监视器的monitoredRegion属性将为29

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

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

这个共享列表受20个地区限制,这意味着不可能通过创建更多的CLLocationManager来绕过限制


[您的
监控区域如何以及为什么有20多个条目是一件有趣的事情。我无法复制这一点。]

您是否测试过它们是否都得到了回调?我会怀疑的。@DavidYoung我还没有测试所有的回调,但当我尝试向monitoredRegion添加300个CLCircularRegion时,只添加了20个。