gpt4 book ai didi

ios - 多个定时器在同一个变量中设置 un

转载 作者:行者123 更新时间:2023-11-28 21:59:30 27 4
gpt4 key购买 nike

这段代码有问题吗?

  self.UpdateTimer = [NSTimer scheduledTimerWithTimeInterval:60. target:self selector:@selector(update:) userInfo:nil repeats:YES];

我注意到这是在一个经常被调用的方法中。但是,只有一个地方使计时器无效并设置为 nil ...该类的 dealloc。

多次设置新定时器是否会自动使旧定时器失效?

最佳答案

不,将计时器设置为新对象不会使之前的计时器失效。如果您多次调用该行代码,您最终将运行多个计时器,但只会在其他地方的一个地方使当前引用的计时器无效。

当您创建计时器时,您可能应该检查是否已经设置了一个并在创建新计时器之前将其无效。

if( self.UpdateTimer )
{
[self.UpdateTimer invalidate];
self.UpdateTimer = nil;
}

self.UpdateTimer = [NSTimer scheduledTimerWithTimeInterval:60. target:self selector:@selector(update:) userInfo:nil repeats:YES];

或者,如果您不需要重置计时器间隔,只需让原来的运行。

if( !self.UpdateTimer )
{
self.UpdateTimer = [NSTimer scheduledTimerWithTimeInterval:60. target:self selector:@selector(update:) userInfo:nil repeats:YES];
}

关于ios - 多个定时器在同一个变量中设置 un,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25446073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com