我一直在試圖找到任何方法來優化我的基於位置的iPhone應用程序的性能,並且看到一些人提到您可以通過啓動和停止CLLocationManager來強制執行位置更新。我需要獲得最佳的準確性,而我的情況下,用戶可能會希望在他們四處走動時每隔幾秒鐘(例如10秒)看到更新。我已經設置了相應的過濾器,但是我注意到有時候我有一段時間沒有在設備上進行任何更新。強制CLLocationManager更新 - 幫助還是傷害?
我測試下面的方法,當固定的時間間隔過去(我使用20秒)時強制更新。我的直覺告訴我,這實際上無法幫助我爲用戶提供更準確的更新,而只是讓CLLocationManager始終運行可能是最好的方法。
- (void)forceLocationUpdate {
[[LocationManager locationManager] stopUpdates];
[[LocationManager locationManager] startUpdates];
[self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0];
}
我的問題是強迫從CLLocationManager更新實際上改善核心位置性能?它會傷害性能嗎?如果我在一個GPS接收良好的露天場地外面,這會有幫助嗎?有沒有人有這方面的經驗?
由於提前, 史蒂夫
設置你的CLLocationManager時,你應該將'desiredAccuracy'標準設置爲'kCLLocationAccuracyBestForNavigation',在iOS 4+中可用。然後,讓OS優化。 – Nate 2012-05-23 03:33:03