Как удалить кеш-память? - PullRequest
       9

Как удалить кеш-память?

4 голосов
/ 01 февраля 2010

Я занимаюсь разработкой приложения для iPhone, которое учитывает местоположение. В настоящее время приложение работает нормально, за исключением кэширования предыдущего местоположения. При первом запуске менеджер местоположения приложения выбирает текущее местоположение, а затем отображает находящиеся поблизости объекты на основе текущего местоположения.

Но со следующего он использует ранее извлеченное местоположение, и пока я не перезагружу телефон, он будет извлекать то же самое местоположение. Таким образом, до этого момента мне ясно, что менеджер местоположений кэширует местоположение.

Так что мой вопрос в том, как удалить этот кеш и заставить диспетчер местоположений выбрать новое местоположение. спасибо

1 Ответ

7 голосов
/ 01 февраля 2010

На самом деле, я не думаю, что вы можете: это зависит от вас (в вашем CLLocationManagerDelegate экземпляре) отфильтровать полученную вами позицию на основе ее временной метки (чтобы убедиться, что позиция, над которой вы работаете, недавняя, а не кэшировал один).



-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
    NSDate *eventDate = newLocation.timestamp; 
    NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
    //Is the event recent and accurate enough ?
    if (abs(howRecent) < SECS_OLD_MAX) {
        //WORK WITH IT !
    }
....
....


...