Mi aplicación realiza un seguimiento de un usuario con CLLocationManager
. En la llamada de delegado didUpdateToLocation
hago todo lo divertido de guardar su posición. Sin embargo, necesitaba una forma de comprobar si se habían detenido. Así podría dejar de grabar lugares y considerar su viaje terminado. Así que tengo un NSTimer
en CCLocationManager
que se agrega y elimina cada vez que se llama didUpdateToLocation
. Eso se iniciará cuando el usuario se detenga y deje de llamar al CLLocationManager
.NSTimer y NSRunLoop
La única manera de que alguna vez pudiera conseguir la NSTimer
al trabajo es hacer:
[[NSRunLoop mainRunLoop] addTimer:userStoppedMovingTimer forMode:NSRunLoopCommonModes];
continuación para eliminarlo:
[userStoppedMovingTimer invalidate];
nunca he tenido que añadir temporizadores como este en el pasado. ¿Podría alguien arrojar algo de luz sobre por qué es esto?
Si crea el temporizador con '+ scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:', esto no debería ser un problema. –