地理围栏 (CLCircularRegion) 和 iBeacons (CLBeaconRegion) 是否共享 20 个限制?

Do geofences (CLCircularRegion) and iBeacons (CLBeaconRegion) share the 20 limit?

A​​pple 关于监控地理围栏和 iBeacon 区域的共享文档在地理围栏部分声明单个应用程序的监控区域限制为 20 个:

For this reason, Core Location limits to 20 the number of regions that may be simultaneously monitored by a single app.

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html

不清楚此限制是针对地理围栏和信标区域组合,还是每种类型都有 20 个限制。

这20个区域是共享限制吗?或者我可以分别注册 20 个吗?

您最多只能指定 20 个唯一区域 ID。但是您不需要指定每一个的主要和次要值。您可以为您的 beacons/regions 使用相同的 ID,并更改主要和次要值以克服此限制。

CLCircularRegion 和 CLBeaconRegion 共享同一个最多 20 个区域的池,CoreLocation 允许单个应用同时监控该池。

这个限制早于CLBeaconRegion在iOS中的引入 7.当Apple将信标内置到同一个监控框架中时,CLBeaconRegion继承了同样的限制。如果你监听了20个CLCircularRegion,然后尝试开始监听一个CLBeaconRegion,你会报错。