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

Iphone 强制CLLocationManager更新-这有帮助还是有害?,iphone,gps,cllocationmanager,core-location,Iphone,Gps,Cllocationmanager,Core Location,我一直在试图找到任何方法来优化我基于位置的iPhone应用程序的性能,并且看到一些人提到可以通过启动和停止CLLocationManager来强制进行位置更新。我需要我能得到的最好的准确度,在我的情况下,用户可能希望在他们走动时每隔几秒(比如说,10秒)看到更新。我已经相应地设置了过滤器,但我注意到,有时我在相当长的一段时间内无法在设备上获得任何更新 我正在测试以下方法,当固定的时间间隔过去时(我使用20秒)强制更新。我的直觉告诉我,这并不能帮助我向用户提供更准确的更新,让CLLocationM

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

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

- (void)forceLocationUpdate {
    [[LocationManager locationManager] stopUpdates];
    [[LocationManager locationManager] startUpdates];
    [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0];
}
我的问题是-强制从CLLocationManager更新是否真的可以提高核心位置性能?这会影响性能吗?如果我在户外一片开阔的场地上,GPS信号接收良好,这会有帮助吗?有没有人有过这样的经历

提前感谢,,
Steve

我也在尝试优化应用程序中的“靠近我”功能-我发现以下帖子信息非常有用:

如果您正确设置了所需的准确度和距离过滤器,那么您就不会得到任何更新,因为您的用户或测试没有足够的移动来触发更新。正如@Nate的评论所说,如果你将其设置为best或bestForNav,你就有更好的机会获得更多的更新


关闭位置管理器的真正原因实际上是为了节省电池。大多数将该设备用于GPS和nav的用户都知道要将其插上电源。若你们并没有使用位置来做类似的事情,你们最好先获取你们的位置并关闭它以节省电池,直到你们需要另一个位置更新。这可以通过定时器或块来完成。最重要的是要考虑如何操作和节省尽可能多的电池。

在设置CLLocationManager时,您应该将
desiredAccuracy
标准设置为iOS 4+中提供的“kCLLocationAccuracyBestForNavigation”。然后,让操作系统进行优化。