2010-11-10 111 views
0

我正在潜心研究iOS开发,并试图在我的某个视图中创建一个向上计时器。我有NSTimer代码计算出每0.04秒调用一次选择器,更新UILabel。我遇到问题的地方是当前时间格式化(最初从00:00开始)。我认为最好的方法是使用NSDate类和相关类(NSDateFormatter,NSDateComponents等),但操纵日期和格式真的让我感到困惑,代码很快就变得笨拙。我希望有一些SO用户可以很好的使用NSDate类,它可以帮助我找到一种简单的方法来计算当前计时器的计时器并将其转换为NString格式为“seconds:milliseconds”。如何使用seconds:milliseconds格式创建递增计时器?

我会很高兴,如果要求后我在NSDate码初步尝试,但我会,因为它是没有用的不是最初真正的尴尬:)

回答

3

如果你只是想显示时间以来经过你开始你的计时器,你可以在某处存储起始日期(比如startDate变量),并使用当前日期计算时间间隔。像下面的东西应该工作:

NSTimeInterval passed = [[NSDate date] timeIntervalSinceDate: startDate]; 
double intPart; 
double fract = modf(passed, &intPart); 
label.text = [NSString stringWithFormat:@"%d:%.2f", (int)intPart, fract]; 
+0

谢谢,很简单,我会试试看! – BeachRunnerFred 2010-11-10 21:24:44

+0

希望能工作:) – Vladimir 2010-11-10 21:26:38