The reason it didn't work for me is that I didn't add the object to the scene layer. Apparently if it's not part of a scene, it is automatically set to paused. As for you, this should be just fine, but if you don't want to add it as a child, I decided to use the objective c functions scheduling.
To schedule:
[[CCScheduler sharedScheduler] scheduleSelector:@selector(tick:) forTarget:self interval:0.0 paused:NO];
To unschedule
[[CCScheduler sharedScheduler] unscheduleSelector:@selector(tick:) forTarget:self];
To schedule:
[[CCScheduler sharedScheduler] scheduleSelector:@selector(tick:) forTarget:self interval:0.0 paused:NO];
To unschedule
[[CCScheduler sharedScheduler] unscheduleSelector:@selector(tick:) forTarget:self];