Менеджер по размещению Дает мне старую должность
-
19-09-2019 - |
Вопрос
я использовал CLLoction manager для получения местоположения. но когда я когда-либо запускаю свое местоположение, оно выдает мне oldlocation, которое ранее сохранялось на устройстве.я хочу сбросить местоположение для этого я использовал флаг при первом запуске приложения, я использовал newlocation и вызывал метод stopupdateinglocation и startupdatinglocation.Но oldlocation не изменен, он показывает старое местоположение.
Решение
Каждый CLLocation
имеет timestamp
свойство, которое вы можете использовать для фильтрации всех обновлений местоположения, которые слишком устарели для вашего использования.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSTimeInterval age = [newLocation.timestamp timeIntervalSinceNow];
if(age < SOME_CONSTANT_IN_SECONDS)
{
//Use location
}
}
Другие советы
Вы не можете очистить старое местоположение, но вы можете проверить horizontalAccuracy, чтобы узнать, хорошее ли это местоположение (текущее) или что-то старое и неактуальное.