要检查 NSTimer 是否已经失效,您可以使用以下方法:
BOOL timerDidFire;
- (void)timerDidFire:(NSTimer *)timer {
timerDidFire = YES;
}
if (timerDidFire) {
// 计时器已经失效
} else {
// 计时器未失效
}
timerDidFire = NO;
需要注意的是,NSTimer 只能保证回调方法在指定的时间间隔内至少被调用一次。如果计时器的时间间隔非常短,或者设备的性能很低,可能会导致计时器回调方法被延迟调用,从而导致计时器失效的判断不准确。在这种情况下,您可以考虑使用其他方法来检查计时器是否失效,例如使用 CADisplayLink 或者 GCD 的定时器。
领取专属 10元无门槛券
手把手带您无忧上云