菜鸟教程小白 发表于 2022-12-13 09:29:06

ios - NSTimer 内存泄漏?


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

<pre><code>-(void)viewDidLoad{   
countDownTimer = ;
}

-(void)pauseTimer{            
   NSLog(@&#34;Fired&#34;);
   ;
   //countDownTimer = nil &lt;------ Causes crash when run
}

-(void)resumeTimer{
   countDownTimer = ;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>可以使用 <code>scheduleTimer</code> 方法的 <code>block</code> 变体来避免保留循环。</p>

<pre class="lang-swift prettyprint-override"><code>var timer = Timer()

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

func stopTimer() {
   timer.invalidate()
}
</code></pre>

<p>只要确保将 <code>self</code> 捕获为 <code>weak</code> 变量即可。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - NSTimer 内存泄漏?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7826394/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7826394/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - NSTimer 内存泄漏?