我做了一个类,叫做 Timer。其指定的初始化程序启动一个计时器,其值以秒为单位。它工作得很好。但是,我无法更新控制器 w/e 计时器滴答声。
现在,对于每个滴答声,我都会发送一个带有 userInfo 的 NSNotificationCenter ,这是一个带有当前时间的简单字典,这听起来不是最好的方法......
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:self.timerCount] forKey:@"timerCount"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"TimerCountChanged"
object:self
userInfo:dict];
我应该使用其他技术还是以正确的方式使用?
先感谢您!
编辑: 我需要使用不同的值初始化不同的定时器。我尝试使用 Delegates,但我的控制器中只有一种方法可以更新所有计时器的 UI!如果我做类似的事情会很糟糕吗?将 UIButton 传递给我的模型似乎也不是最好的解决方案,但它确实有效。
-(void)timer:(Timer *)timer didTriggerAt:(NSTimeInterval)time andButton:(UIButton *)button
{
[button setTitle:[NSString stringWithFormat:@"%.0f", time] forState:UIControlStateNormal];
}
- (IBAction)startCountDown:(UIButton *)sender
{
self.timer1 = [[Timer alloc] initWithTimeInSeconds:10 andButton:sender];
self.timer1.delegate = self;
}
我的 MainView 中有 3 个计时器,用户可以随时启动它们。它们也可以有不同的时间,这也是由用户定义的。