Primarily I'm looking for a way to create an nstimer scheduledTimerWithTimeInterval that repeat开发者_运维技巧s every 3 seconds 10 times then invalidates just as a no-repeating timer would. Is this possible? Ideally an additional selector would fire once the timer invalidates too
Just keep track of the number of loops and keep a reference to the timer object. Then just invalidate it when you've done enough.
// ivars
int loopCount;
NSTimer *myTimer;
// Method that calls your timer.
- (void)doStuff {
loopCount++;
if (loopCount >= 10) {
[myTimer invalidate];
myTimer = nil;
} else {
//do my stuff here...
}
}
// Method that kicks it all off
- (IBAction)startDoingStuff {
myTimer = [NSTimer scheduledTimerWithTimeInterval:3.0
target:self
selector:@selector(doStuff)
userInfo:nil
repeats:YES];
}
精彩评论