我的计时器没有重复请帮助
这是代码
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)
[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
在同一个类中定义.
归档时间: |
|
查看次数: |
276 次 |
最近记录: |