代码之家  ›  专栏  ›  技术社区  ›  Steve N

强制CLLocationManager更新-有帮助还是有伤害?

  •  5
  • Steve N  · 技术社区  · 15 年前

    我一直在试图找到任何方法来优化基于位置的iPhone应用程序的性能,并且看到一些人提到可以通过启动和停止CLLocationManager来强制位置更新。我需要我能得到的最好的准确度,在我的情况下,用户可能希望看到更新每隔几秒(比如说,10秒)左右走动。我已经相应地设置了过滤器,但我注意到,有时在相当长的一段时间内,设备上没有任何更新。

    我正在测试以下方法,当固定的时间间隔过去时(我使用的是20秒)强制更新。我的直觉告诉我,这并不能帮助我向用户提供更准确的更新,让CLLocationManager一直运行可能是最好的方法。

    - (void)forceLocationUpdate {
        [[LocationManager locationManager] stopUpdates];
        [[LocationManager locationManager] startUpdates];
        [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0];
    }
    

    我的问题是-从CLLocationManager强制更新是否实际上提高了核心位置性能?会影响表演吗?如果我在野外,GPS接收良好,这会有帮助吗?有人试过这个吗?

    史蒂夫

    2 回复  |  直到 15 年前
        1
  •  0
  •   Community CDub    8 年前

    我还试图优化应用程序中的“近距离”功能-我发现以下内容非常有用,因此发布信息非常有用: link text

        2
  •  0
  •   Bill Burgess    12 年前

    如果您正确地设置了所需的精度和距离过滤器,则可能无法获得任何更新,因为您的用户或测试没有移动到足以触发更新的位置。正如@Nate的评论所说,如果你设置为best或bestForNav,你就有更好的机会获得更多的更新。