In the .h file:
NSTimer *showInfoBoxAfterDelayTimer1;
In the .m file:
myTimer1 = [NSTimer scheduledTimerWithTimeInterval:1.5 //seconds (use decimal places if requried)
target:self
selector:@selector(someMethodName)
userInfo:nil
repeats:NO]; //NO = fire only once
//[myTimer1 fire]; //< Use this to trigger it immediately
- (void)someMethodName
{
To Stop A Timer
//You can use this, but if you do it to a timer that has already been invalidated you crash
[myTimer1 invalidate];
//This avoids that
if ((myTimer1 != nil) && ([myTimer1 isValid]))
{
[myTimer1 invalidate]; //Causes release
myTimer1 = NULL;
}
Don’t Use This To Stop A Timer Or To Check It’s Been Released
Don’t use it even after a timers only fire event! This can cause non descript crashing bugs that can be horrible to realize are actually beind caused the release of the timer!! Use the method above not this:
if (myTimer1)
{
[myTimer1 release];
myTimer1 = nil;
}
Causing A Method To Keep Being Called Until Something Is Done
- (void)MyMethodName
{
if (SomeTest)
{
//Do stuff...
//Call this method again after a delay
[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(MyMethodName) userInfo:nil repeats:NO];
}
else
{
}
}