Я пытался найти какой-либо способ оптимизировать производительность моего приложения iPhone на основе определения местоположения и видел, как некоторые люди упоминали, что вы можете принудительно обновлять местоположение, запуская и останавливая свой CLLocationManager. Мне нужна максимальная точность, которую я могу получить, и пользователь в моем случае, вероятно, хотел бы видеть обновления каждые несколько секунд (скажем, 10 секунд), пока они ходят. Я настроил фильтры соответствующим образом, но заметил, что иногда я не получаю никаких обновлений на устройстве в течение достаточно долгого времени.
Я тестирую следующий подход, который вызывает обновление, когда проходит фиксированный интервал времени (я использую 20 секунд). Моя интуиция говорит мне, что это действительно не поможет мне предоставить более точные обновления пользователю, и что просто оставляя CLLocationManager постоянно запущенным, вероятно, лучший подход.
- (void)forceLocationUpdate {
[[LocationManager locationManager] stopUpdates];
[[LocationManager locationManager] startUpdates];
[self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0];
}
Мой вопрос таков: действительно ли принудительное обновление из CLLocationManager улучшает производительность ядра? Вредит ли это производительности? Если я нахожусь на улице в открытом поле с хорошим приемом GPS, тогда это поможет? У кого-нибудь есть опыт этого?
Спасибо заранее,
Стив