Менеджер по размещению Дает мне старую должность

StackOverflow https://stackoverflow.com/questions/1899540

  •  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, чтобы узнать, хорошее ли это местоположение (текущее) или что-то старое и неактуальное.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top