Мое приложение отслеживает пользователя с CLLocationManager
. В вызове делегата didUpdateToLocation
я делаю все самое интересное, сохраняя их позицию. Однако мне нужен был способ проверить, остановились ли они. На этом я мог перестать записывать места и считать их путешествие законченным. Итак, у меня есть NSTimer
в CCLocationManager
, который добавляется и удаляется каждый раз, когда вызывается didUpdateToLocation
. Таким образом, он будет инициирован, когда пользователь остановится и CLLocationManager
перестанет вызываться.
Единственный способ заставить NSTimer
работать — это сделать:
[[NSRunLoop mainRunLoop] addTimer:userStoppedMovingTimer forMode:NSRunLoopCommonModes];
Затем, чтобы удалить:
[userStoppedMovingTimer invalidate];
Раньше мне никогда не приходилось добавлять такие таймеры. Может ли кто-нибудь пролить свет на то, почему это так?