计时器没有重复

Ami*_*wal 0 iphone ios

我的计时器没有重复请帮助

这是代码

timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(doAnimation:) userInfo:nil repeats:YES];
[timer fire];
Run Code Online (Sandbox Code Playgroud)

方法

-(void)doAnimation:(id)Sender
{
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*dam 6

[timer fire]手动触发计时器一次,实际上并没有"启动"计时器.来自文档:

您可以使用此方法触发重复计时器,而不会中断其常规点火计划.如果计时器不重复,则在触发后它会自动失效,即使其计划的触发日期尚未到达.

您需要在运行循环中添加计时器,然后才能开始触发并重复:

您必须使用addTimer:forMode:将新计时器添加到运行循环中.然后,在经过秒秒后,计时器将触发,将消息aSelector发送到目标.(如果计时器配置为重复,则无需随后将计时器重新添加到运行循环中.)

更简单的方法是做一些事情:

timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(doAnimation:) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)

和:

-(void)doAnimation:(NSTimer*)timer
{
}
Run Code Online (Sandbox Code Playgroud)

这会自动调度计时器并将其添加到运行循环中.如果您没有这样做,因为您已将目标设置self为必须确保该方法doAnimation在同一个类中定义.

NSTimer类参考