Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find if NSTimer is active or not?

I have a timer something like this:

 NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1.0                                                    target:self                                                  selector:@selector(updateCountdown)                                                  userInfo:nil                                                   repeats:YES];  

I am updating a label's text using this timer. At a certain condition, I want to check if the timer is active then invalidate the timer. My question is how do I find that timer is active or not?

like image 519
Rahul Vyas Avatar asked Oct 28 '09 08:10

Rahul Vyas


1 Answers

When a non repeating timer fires it marks itself as invalid so you can check whether it is still valid before cancelling it (and of course then ridding yourself of it).

if ( [timer isValid] && yourOtherCondition){     [timer invalidate], timer=nil; } 

In your case you have a repeating timer so it will always be valid until you take some action to invalidate it. Looks like in this case you are running a countdown so it will be up to you to make sure you invalidate and rid yourself of it when the countdown reaches the desired value (In your updateCountdown method)

like image 57
Kevin Avatar answered Oct 06 '22 07:10

Kevin