【问题标题】:startMonitoringForRegion:desiredAccuracy: vs startMonitoringForRegion:startMonitoringForRegion:desiredAccuracy: vs startMonitoringForRegion:
【发布时间】:2011-10-15 12:30:31
【问题描述】:

IOS4 有一个 startMonitoringForRegion:desiredAccuracy: 方法。

IOS5 新增 startMonitoringForRegion:(不准确)。

所有文档都说“您必须调用此 [新] 方法或 startMonitoringForRegion:desiredAccuracy: 方法”等。没有给出详细信息。

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

【问题讨论】:

    标签: iphone core-location ios5


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      它基本上是一种更新的方法,允许您添加调用以提高准确性。 iOS 4 设备支持旧方法而不会失败。我没有尝试没有准确度挂钩的调用,但我猜它们应该工作相似,但准确度让系统知道多久更新一次以获得更长的电池寿命。

      【讨论】:

      • 恐怕是反过来了……不准确的调用是IOS5中添加的。
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-09-11
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 2011-05-08
        • 2012-01-24
        相关资源
        最近更新 更多