我应该能够使用NSTimer延迟2秒。怎么做?

时间:2010-09-14 18:31:35

标签: iphone xcode nstimer nstimeinterval

我想使用NSTimer如何在程序中初始化定时器产生2秒的延迟?

4 个答案:

答案 0 :(得分:12)

这里有多个选项。

如果您只想延迟2秒,可以使用sleep()函数

#include<unistd.h>
...
sleep(2);

或者您也可以像这样使用NSTimer

[NSTimer    scheduledTimerWithTimeInterval:2.0    target:self    selector:@selector(fireMethod)    userInfo:nil repeats:NO];

在你的课堂上你会有一个定义为

的方法
-(void)fireMethod
{
//Do stuff 
}

答案 1 :(得分:4)

你去......

[NSTimer scheduledTimerWithTimeInterval:2 
                                     target:self 
                                   selector:@selector(action) 
                                   userInfo:nil 
                                    repeats:NO];

答案 2 :(得分:1)

简单回答:[NSThread sleepForTimeInterval:10.0];

答案 3 :(得分:-1)

请注意,您不应该考虑事件驱动的UI / OS中的延迟。您应该考虑要立即执行的任务,以及稍后要执行的任务,并对这些子任务进行编码并对其进行适当的计划。例如而不是:

// code that will block the UI when done in the main thread
- (void) methodC {
  doA();
  delay(2);
  doB();
}

您可能希望代码看起来更像:

- (void) methodA {
  doA();
  return;  // back to the run loop where other useful stuff might happen
}

- (void) methodB {
  doB();
}

然后你可以在methodA结束时使用NSTimer调度methodB,通过任何被调用的方法A调用NSTimer,或者通过methodA启动的异步完成例程调度最佳选项。