2012-07-31 83 views
1

这就是我想要做的: 我想要一个定时器来触发一个方法,然后在此方法结束时将其切换为开启另一个定时器另一种方法,然后进入一个循环。如何以编程方式打开/关闭定时器

那么用什么代码在方法上打开和关闭定时器之间切换?

在Delphi中我使用:

timer.enable:=True; // timer.enable:=False; 

是否有类似的办法做到这一点的Objective-C的? 我正在使用Xcode 4.4 谢谢!

回答

3

要关闭定时器,请致电invalidate你的计时器,像这样:

[yourTimer invalidate]

然后开始一个新的:

NSTimer *newTimer; 

        newTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 //Every how many seconds 
                   target:self 
                   selector:@selector(methodToCall) 
                   userInfo:nil 
                   repeats:YES]; 
+0

它工作的非常好,非常感谢! – Pablo 2012-07-31 19:46:23

+0

很高兴能帮到你! – Imirak 2012-07-31 19:46:48

1

假设你的NSTimer被称为 “计时器” ,您可以使用...

[timer invalidate] 

to sto定时器。为了使计时器传递一个消息给它的目标方法瞬间,用

[timer fire] 

要启动一个定时器,您使用的文档中列出的构造方法之一(https://developer.apple.com/library/ mac /#documentation/Cocoa/Reference/Foundation/Classes/nstimer_Class/Reference/NSTimer.html)如

NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doThisWhenTimerFires:) userInfo:nil repeats:NO] 

- (void)doThisWhenTimerFires:(NSTimer *)timer 
{ 
    //code here 
}