startMonitoringForRegion:desiredAccuracy:vs startMonitoringForRegion:

时间:2011-10-15 12:30:31

标签: iphone core-location ios5

IOS4有一个startMonitoringForRegion:desiredAccuracy:方法。

IOS5添加了startMonitoringForRegion :(没有准确性)。

所有文档都说“你必须调用这个[new]方法或startMonitoringForRegion:desiredAccuracy:method”等。没有给出详细信息。

有人知道两者之间有什么区别吗?如果支持,我应该调用IOS5方法吗?

3 个答案:

答案 0 :(得分:0)

它基本上是一种更新的方法,允许您添加调用以获得准确性。 iOS 4设备支持旧方法,但不会失败。我没有尝试没有准确挂钩的电话,但我猜它们应该工作类似,但准确性让系统知道更新的频率,以获得更好的电池续航时间。

答案 1 :(得分:0)

这取决于你需要什么。请注意所需精度参数的含义:

  

使用startMonitoringForRegion:desiredAccuracy:方法注册区域时,可以指定区域所需的缓冲距离。当用户靠近边界边缘时,该缓冲值可防止系统快速连续地产生大量进入和退出的事件。“

根据我的理解和测试,不使用此参数的新方法使用一些内部逻辑来知道何时触发事件。 (看起来它取决于wifi是打开还是关闭以及当前的位置准确性......)

答案 2 :(得分:0)

iOS5方法startMonitoringForRegion :(无准确性)使用CLLocationManager对象的desiredAccuracy属性来确定要使用的准确度级别。它基本上等同于:

[myLocationManager startMonitoringForRegion:myRegion desiredAccuracy:myLocationManager.desiredAccuracy];

如果您已经在其他地方设置了所需的准确度,请使用iOS5方法,但如果您没有在其他地方设置,或者您想要覆盖现有的desiredAccuracy,请使用iOS4方法。