gpt4 book ai didi

ios - NSTimer 内存泄漏?

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

以下是否会导致内存泄漏或是否可以通过某种方式将其更改为更好?随着 countDownTimer = nil 被移除

-(void)viewDidLoad{    
countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(loadNewTime:) userInfo:nil repeats:YES];
}

-(void)pauseTimer{
NSLog(@"Fired");
[countDownTimer invalidate];
//countDownTimer = nil <------ Causes crash when run
}

-(void)resumeTimer{
countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(loadNewTime:) userInfo:nil repeats:YES];
}

最佳答案

可以使用 scheduleTimer 方法的 block 变体来避免保留循环。

var timer = Timer()

func startTimer() {
timer = Timer.scheduleTimer(withTimerInterval: 1.0, repeats: true, block: { [weak self] (timer) in
self?.performUpdate(timer: timer)
})
}

func stopTimer() {
timer.invalidate()
}

只需确保将 self 捕获为 weak 变量即可。

关于ios - NSTimer 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826394/

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