NSTimer没有被解雇?

时间:2014-02-19 19:44:51

标签: ios ios7 nstimer

即使我重复初始化为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];

1 个答案:

答案 0 :(得分:3)

来自NSTimer的文档:

  

您必须使用addTimer:forMode:将新计时器添加到运行循环中。   在触发时,计时器将消息aSelector发送到目标。 (如果   计时器配置为重复,不需要随后重新添加   运行循环的计时器。)

你最好打电话:

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats

因为这会将它添加到默认模式下的当前运行循环中(这通常是您想要的,除非明确需要不同的运行循环或模式)