我想使用NSTimer如何在程序中初始化定时器产生2秒的延迟?
答案 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启动的异步完成例程调度最佳选项。