NSTimer问题

时间:2009-08-06 16:24:18

标签: iphone

我如何使用NSTimer进行倒计时或甚至可能?我已经尝试了几件事并且在处理这些数字时遇到了一些错误,但是我想要发生的事情就是当我的计时器被激活时它从5点开始,每秒钟开始它会消失我想要一个新数字出现在我的标签上......

if(Timer1 == 5:00){

// label将显示5

}

由于某种原因,这段代码给我一个使用5:00的错误..我也不认为它甚至会被调用因为计时器没有激活方法,直到时间用完所以我有点卡住:/任何帮助?

2 个答案:

答案 0 :(得分:1)

5:00不是C或Objective-C中的有效数字。

您要做的第一件事是阅读developer.apple.com上的Objective-C教程的介绍,然后,可能会通过某种“编程iPhone”的书来跟进。

您的问题表明完全缺乏理解。这没什么不对 - 只是期望在你面前做一堆学习/学习。

一旦你这样做,你就能理解这一点:

重复的NSTimer无法保证每N分钟/秒/小时/天(无论您的间隔是多少)都会发射。有污点;取决于定时器发生时会发生什么,这可能会有很大的影响。

因此,您希望创建一个周期性计时器,但是通常需要更新UI,然后使用不同的机制确切地计算出已经过了多长时间。

抓斗的开始时间 - [NSDate date]效果很好 - 存储它什么地方,然后用它来确定多少时间其实已经过去了,当计时器触发(通过抓住另一个[NSDate date],然后减去首先从它获得经过的时间。)

答案 1 :(得分:0)

而不是这样做: 在任何需要计时器的地方插入以下代码

[NSTimer scheduledTimerWithTimeInterval :(秒的时间间隔)                                        目标:自                                        选择:@选择(timerFired1 :)                                        用户信息:无                                        重复:NO];

- (void)timerFired1:(NSTimer *)计时器 {   //在指定的时间间隔之后执行您想要执行的操作 }