Moja aplikacja śledzi użytkownika pod numerem CLLocationManager
. W delegacie zadzwoń: didUpdateToLocation
Robię wszystkie fajne rzeczy, zapisując ich pozycję. Potrzebowałem jednak sposobu na sprawdzenie, czy przestali. W ten sposób mogłem przestać nagrywać lokacje i rozważyć ich podróż. Mam więc NSTimer
w CCLocationManager
, który jest dodawany i usuwany za każdym razem, gdy wywoływana jest nazwa didUpdateToLocation
. Od tego będzie on zainicjowany, gdy użytkownik zatrzyma się i CLLocationManager
przestanie być wywoływany.NSTimer i NSRunLoop
Jedynym sposobem, że mógłbym dostać NSTimer
do pracy jest do zrobienia:
[[NSRunLoop mainRunLoop] addTimer:userStoppedMovingTimer forMode:NSRunLoopCommonModes];
Następnie, aby go usunąć:
[userStoppedMovingTimer invalidate];
nigdy nie miałem, aby dodać liczniki jak to w przeszłość. Czy ktoś mógłby rzucić trochę światła na to, dlaczego tak jest?
Jeśli utworzysz timer z '+ scheduleTimerWithTimeInterval: target: selector: userInfo: repeatates:', to nie powinno być problemu. –