位置管理器对 20 个区域的限制是否意味着总共 20 个地理围栏和信标区域?
Does the location manager's limit of 20 regions mean 20 total geofence AND beacon regions?
恐怕我知道这个问题的答案了。
Apple 的 startMonitoringForRegion 方法的位置管理器文档说您一次最多可以监视 20 个区域。
我有一个大量使用地理围栏区域和信标区域的客户端应用程序。
我原以为地理围栏区域和信标区域分别有 20 个区域限制,但我担心这两种类型的限制实际上是 20 个区域。
有人可以根据实际经验证实我的恐惧吗?
是的,20 个区域限制是 CoreLocation 允许您监控 CLBeaconRegion
s 和 CLCircularRegion
s(地理围栏)组合的最大值。当 iOS 7 添加信标支持时,由于 API 的定义方式,信标区域继承了地理围栏的相同限制。正如您所怀疑的那样,该限制适用于您要监控的任何类型的区域。因此,您可以监视 10 CLBeaconRegion
和 10 CLCircularRegion
,但每种类型的组合不超过 20 个。
每种 CLRegion
的限制为 20 个。这意味着您可以监控 20 CLCircularRegion
和 20 CLBeaconRegion
。
这没有记录,但我做了一些测试并添加了超过 20 个 CLBeaconRegion
和超过 20 个 CLCircularRegion
。结果是 self.locationManager.monitoredRegions.count
是 40
有 20 个 monitoredRegions
类型 CLCircularRegion
和另外 20 个类型 CLBeaconRegion
.
一旦达到每种类型 CLRegion
的限制并且您尝试监视(该类型的)新区域,它们将被忽略并且调用 locationManager:monitoringDidFailForRegion:withError:
并出现 kCLErrorRegionMonitoringFailure
错误代码。
恐怕我知道这个问题的答案了。
Apple 的 startMonitoringForRegion 方法的位置管理器文档说您一次最多可以监视 20 个区域。
我有一个大量使用地理围栏区域和信标区域的客户端应用程序。
我原以为地理围栏区域和信标区域分别有 20 个区域限制,但我担心这两种类型的限制实际上是 20 个区域。
有人可以根据实际经验证实我的恐惧吗?
是的,20 个区域限制是 CoreLocation 允许您监控 CLBeaconRegion
s 和 CLCircularRegion
s(地理围栏)组合的最大值。当 iOS 7 添加信标支持时,由于 API 的定义方式,信标区域继承了地理围栏的相同限制。正如您所怀疑的那样,该限制适用于您要监控的任何类型的区域。因此,您可以监视 10 CLBeaconRegion
和 10 CLCircularRegion
,但每种类型的组合不超过 20 个。
每种 CLRegion
的限制为 20 个。这意味着您可以监控 20 CLCircularRegion
和 20 CLBeaconRegion
。
这没有记录,但我做了一些测试并添加了超过 20 个 CLBeaconRegion
和超过 20 个 CLCircularRegion
。结果是 self.locationManager.monitoredRegions.count
是 40
有 20 个 monitoredRegions
类型 CLCircularRegion
和另外 20 个类型 CLBeaconRegion
.
一旦达到每种类型 CLRegion
的限制并且您尝试监视(该类型的)新区域,它们将被忽略并且调用 locationManager:monitoringDidFailForRegion:withError:
并出现 kCLErrorRegionMonitoringFailure
错误代码。