【问题标题】:NSTimer does not want to fire after fireDate is PassedNSTimer 不想在 fireDate 被通过后触发
【发布时间】:2012-06-21 07:30:38
【问题描述】:

我有一个NSTimer,它在用户设置的特定时间在当前日期触发。例如 2012 年 6 月 22 日下午 12:00。当用户点击一个按钮时,如果小时等于下午 12:00,它会触发计时器。没关系,但是经过这段时间之后,当用户单击按钮时,NSTimer 再次触发。我不想要这样的行为,那么当触发日期过去时,我该怎么做才能让计时器不触发呢?

NSTimer *t = [[NSTimer alloc] initWithFireDate:fireDate                                          
              interval:0.0     
              target:self
              selector:@selector(doTimerAction:)
              userInfo:nil repeats:NO];

NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:t forMode: NSDefaultRunLoopMode];
[t release];

【问题讨论】:

  • 每次用户单击按钮时,您是否都在创建计时器实例?我不确定我是否理解这个问题。

标签: ios ios4 nstimer ios5


【解决方案1】:

你确定你需要 NSTimer,前提是我明白你不能这样做

-(IBAction)btnPush:(id)sender{

if (hourInput == currentHour){
[self performSelector:@selector(doAction)];
}

希望这会有所帮助,如果没有给我留下评论并且我会尝试提供更多帮助。

【讨论】:

  • geminiCoder 。实际上我需要计时器,因为我希望将来能够自动在指定日期自动发生火灾事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多