Tick timer in Objective C / iPhone?



我正在制作一个Simon Said应用程序来了解有关Objective C的更多信息。

我的SimonSayViewController有4个按钮。当向用户显示模式时,他们的图像需要相应地更改。

固定间隔计时器绝对没问题。

我似乎找不到一个例子。

我基本上想要一种设置,例如:

TimerTicked回调,当我可以执行图像交换逻辑时。

理想情况下,TimerTicked方法是我的SimonSaysViewController的方法。

这将如何完成?

谢谢

NSTimer 是你的朋友!将 NSTimer 属性添加到 SimonSaysViewController。

@property (strong, nonatomic) NSTimer *tickTockTimer;

根据您希望计时器启动的时间,您需要设置计时器。假设您希望计时器在视图首次出现时启动:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    self.tickTockTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
}

然后实现 timerFired 方法并在那里执行所需的操作。

- (void)timerFired:(NSTimer *)timer {
    //change the image.
}
完成后不要忘记使

计时器失效。

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.timer invalidate];
    self.timer = nil;
}
这种

事情通常对我有用

NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:2.0]; // 2 sec from now
NSTimer *self.timer = [[NSTimer alloc] initWithFireDate:fireDate interval:5 target:self selector:@selector(timerDidTick) userInfo:nil repeats:YES]; // fire 5 sec apart
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:self.timer forMode:NSDefaultRunLoopMode];

最新更新