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