位置经理对20个地区的限制是否意味着20个地理围栏和信标区域?

时间:2016-03-23 13:01:36

标签: ios core-location ibeacon clcircularregion

恐怕我知道答案。

Apple的startMonitoringForRegion方法的位置管理员文档说,您一次最多可以监控20个区域。

我有一个客户端应用程序,它大量使用地理围栏区域和信标区域。

我曾假设地理围栏区域和信标区域有20个区域限制,但我担心这两种类型的限制实际上是20个区域。

根据实际经验,有人可以证实我的恐惧吗?

2 个答案:

答案 0 :(得分:4)

是的,20区域限制是CoreLocation允许您监视CLBeaconRegionCLCircularRegion(地理围栏)组合的最大值。当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 40monitoredRegions类型CLCircularRegion,另外20个类型为CLBeaconRegion

一旦达到每种CLRegion类型的限制,并且您尝试监控新区域(该类型),就会被忽略,并使用locationManager:monitoringDidFailForRegion:withError:错误代码调用kCLErrorRegionMonitoringFailure