NSTimer и NSRunLoop

Мое приложение отслеживает пользователя с CLLocationManager. В вызове делегата didUpdateToLocationя делаю все самое интересное, сохраняя их позицию. Однако мне нужен был способ проверить, остановились ли они. На этом я мог перестать записывать места и считать их путешествие законченным. Итак, у меня есть NSTimerв CCLocationManager, который добавляется и удаляется каждый раз, когда вызывается didUpdateToLocation. Таким образом, он будет инициирован, когда пользователь остановится и CLLocationManagerперестанет вызываться.

Единственный способ заставить NSTimerработать — это сделать:

[[NSRunLoop mainRunLoop] addTimer:userStoppedMovingTimer forMode:NSRunLoopCommonModes];

Затем, чтобы удалить:

[userStoppedMovingTimer invalidate];

Раньше мне никогда не приходилось добавлять такие таймеры. Может ли кто-нибудь пролить свет на то, почему это так?

6
задан El Developer 26 July 2012 в 03:57
поделиться