停止一个已经安排好的 nstimer
Stop an already scheduled nstimer
我正在启动一个计时器来触发基于错误的事件condition.However如果条件在预定时间内变为真,我需要停止触发事件。
if(!condition)
{
myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO];
}
else
{
if([myTimer isvalid])
[myTimer invalidate]
myTimer= nil;
}
如果条件在 200 秒内变为真,则不触发 @selector。
使计时器无效不会停止触发该方法。我可以通过使用 BOOL 标志来做到这一点,但我可以使用 NSTimer 的方法来做到这一点吗?
您必须创建 myTimer
的多个实例。检查myTimer
是否已经初始化?
if(!condition)
{
if(myTimer == nil)
myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO];
}
else
{
if([myTimer isvalid])
{
[myTimer invalidate]
myTimer = nil;
}
}
我正在启动一个计时器来触发基于错误的事件condition.However如果条件在预定时间内变为真,我需要停止触发事件。
if(!condition)
{
myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO];
}
else
{
if([myTimer isvalid])
[myTimer invalidate]
myTimer= nil;
}
如果条件在 200 秒内变为真,则不触发 @selector。
使计时器无效不会停止触发该方法。我可以通过使用 BOOL 标志来做到这一点,但我可以使用 NSTimer 的方法来做到这一点吗?
您必须创建 myTimer
的多个实例。检查myTimer
是否已经初始化?
if(!condition)
{
if(myTimer == nil)
myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO];
}
else
{
if([myTimer isvalid])
{
[myTimer invalidate]
myTimer = nil;
}
}