我做了一個類,名爲Timer。其指定的初始化程序以秒爲單位啓動一個定時器。它效果很好。但是我在更新控制器時遇到了計時器滴答問題。從iOS發送模型到控制器的通知
現在,每一個節拍,我發送NSNotificationCenter與USERINFO這是一個簡單的字典,當前時間,這聽起來不是做的最好方法......
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:self.timerCount] forKey:@"timerCount"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"TimerCountChanged"
object:self
userInfo:dict];
我應該正在使用其他技術,還是我正確地使用它?
預先感謝您!
編輯: 我需要初始化不同的定時器,使用不同的值。我試圖使用委託,但我只有一個方法在我的控制器中更新所有這些定時器的用戶界面! 如果我做這樣的事情會不會很糟糕?將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個定時器,用戶可以隨時啓動它們。他們也可以有不同的時間,這也是由用戶定義的。
這是一個很好的第一步。現在你需要使用NSNotificationCenter的addObserver:selector:name:object – 2013-03-02 03:49:03
來觀察這個通知是的,我只是不知道使用NSNotificationCenter是否是最好的方法 – Marcelo 2013-03-02 04:14:32
一般來說,'NSNotificationCenter'是一個很好的在整個應用程序中傳遞消息的方式,而不會創建許多依賴項在這種情況下,我也建議你看看協議,正如答案中所建議的那樣。你能用你到底想要做什麼來更新這個問題嗎?也許有比創建多個定時器更好的解決方案。 – Pascal 2013-03-02 04:57:41