即使我重复初始化为YES,我的计时器也只会触发一次。我希望我的计时器每6秒钟开一次?问题是什么?
@interface TCAMyScene (){
NSTimer *bombTimer;
}
bombTimer = [[NSTimer alloc] initWithFireDate:[NSDate date] interval:6 target:self selector:@selector(setBomb) userInfo:nil repeats:YES];
[bombTimer fire];
解决方案:
bombTime = [NSTimer scheduledTimerWithTimeInterval:6 target:self selector:@selector(setBomb) userInfo:nil repeats:YES];
答案 0 :(得分:3)
来自NSTimer
的文档:
您必须使用addTimer:forMode:将新计时器添加到运行循环中。 在触发时,计时器将消息aSelector发送到目标。 (如果 计时器配置为重复,不需要随后重新添加 运行循环的计时器。)
你最好打电话:
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
因为这会将它添加到默认模式下的当前运行循环中(这通常是您想要的,除非明确需要不同的运行循环或模式)