Try NOT to use Cocoa’s NSTimer. Instead use cocos2d’s own scheduler.
If you use cocos2d scheduler, you will have:
automatic pause/resume.
when the CCLayer (CCScene, CCSprite, CCNode) enters the stage the timer will be automatically activated, and when it leaves the stage it will be automatically deactivated.
Your target/selector will be called with a delta time
/**********************************************************/// OK OK OK OK OK/**********************************************************/-(id) init
{if((self=[super init])){// schedule a callback[self scheduleUpdate]; // available since v0.99.3[self schedule:@selector(tick2:) interval:0.5];
}return self;
}-(void) update:(ccTime) dt
{// bla bla bla}-(void) tick2:(ccTime) dt
{// bla bla bla}/**********************************************************/// BAD BAD BAD BAD/**********************************************************/// Why BAD ?// You can't pause the game automatically.-(void) onEnter
{[super onEnter];
timer1 =[NSTimer scheduledTimerWithTimeInterval:1/FPS target:self selector:@selector(tick1) userInfo:nil repeats:YES];
timer2 =[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(tick2) userInfo:nil repeats:YES];
}-(void) onExit
{[timer1 invalidate];
[timer2 invalidate];
[super onExit];
}-(void) tick
{// bla bla bla}-(void) tick2
{// bla bla bla}