【发布时间】:2012-01-03 08:20:29
【问题描述】:
我正在尝试基于 MVC 模型实现秒表。
秒表使用 NSTimer,每次超时都会调用选择器 -(void) tick。
我尝试将秒表作为可重用模型,但在如何更新每个刻度的视图控制器方面遇到了一些设计问题。
首先,我使用 tick 方法创建了一个协议,并将视图控制器作为其委托。然后,视图控制器在每个滴答时根据计时器的属性更新视图。 elapsedTime 是一个只读的 NSTimeInterval。
它有效,但我认为它可能是糟糕的设计。我是一名 Objective-C/Cocoa Touch 初学者。我应该使用 KVO 之类的东西吗?或者有没有更优雅的解决方案让模型通知视图控制器elapsedTime 发生了变化?
【问题讨论】:
-
第一个问题很好!欢迎来到 SO!
-
定时器和视图控制器到底是什么关系?计时器是否归 VC 所有?
-
谢谢 :) Timer 归 VC 所有,是的。我已经实现了一个从 Timer 继承的 IntervalTimer,然后 VC 拥有 IntervalTimer - IntervalTimer 实际上给我带来了一些麻烦。
标签: objective-c cocoa-touch model-view-controller nstimer