2015-08-25 2 views
0

Я пытаюсь создать приложение, которое обнаружит, остановился ли автомобиль на 5 минут, если он остановится на 5 минут, будет вызвана функцияA. Что было бы лучше всего реализовать это?iOS определяет, не движется ли пользователь в течение определенного времени

ответ

0

Пользователь CoreLocation для отслеживания событий местоположения, поэтому делегат вызывается каждый раз, когда есть событие местоположения. Что вы можете сделать, так это создать NSTimer из 5 минут, что вызовет функциюA, и трюк заключается в перезапуске таймера при получении обновления местоположения. Это означает, что функция будет срабатывать только в том случае, если в течение 5 минут не было изменений местоположения.

+0

У меня возникла проблема с делегатом. это нормально, что он отправляет обновление, даже я не двигаюсь? –

+0

Я использую этот делегат - (void) mapView: (MKMapView *) mapView didUpdateUserLocation: (MKUserLocation *) userLocation { –

+0

@AldrinEquila, что, вероятно, из-за низкой точности, GPS только пытается получить лучшую точность, поэтому он называет делегат каждый раз, когда точность изменяется. Просто фильтруйте события по точности. Что-то вроде этого 'location.horitzontalAccuracy <= 5;' –

0
  1. Обновление текущего местоположения каждые 5 минут.
  2. Сохранение текущей широты и долготы
  3. Сравните широту и долготу от предыдущего обновления.
Смежные вопросы