gpt4 book ai didi

ios - 我需要使计时器失效/释放吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:10 24 4
gpt4 key购买 nike

在我的一个 View Controller 代码中有这一行:

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

它在 7 秒后被调用并做了一些事情......(我没有将计时器分配给变量或属性)

如果在 7 秒结束之前释放 View Controller 会发生什么情况?

我是否必须在某个时候(即在 dealloc 中)释放和/或使 Timer 无效?

最佳答案

这种计时器仅由运行循环保留。因为您没有指向它的指针,所以您不能使它无效。它还将保留其目标 (self),因此 self 不可能在计时器触发之前解除分配。在它触发后,run loop 将释放它,因此它会释放,导致它释放 self,并允许该对象释放(假设没有其他保留)。

在大多数情况下,我不建议忽略 scheduledTimerWithTimeInterval:... 的返回值,因为它使您无法使计时器无效。但是,如果该行为正是您想要的(有时在 AppDelegate 中创建的全局计时器中),则无需额外代码即可正常工作。

关于ios - 我需要使计时器失效/释放吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907560/

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