ios - 使用弱 self 避免在闭包中保留循环
<p><p>我们一直在讨论什么是在闭包中避免保留循环的最佳方法。我们讨论了两种方法。</p>
<pre><code> func getStock() { (stock)in
self?.dismissActivityIndicator()
}
</code></pre>
<p>对</p>
<pre><code> func getStock(){ (stock) in
guard let strongSelf = self else { return }
strongSelf.dismissActicityIndicator()
}
</code></pre>
<p>其中一个比另一个更好或更安全吗?为什么?如果有帮助,我们的讨论是基于多线程场景的。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>在实践中,这两种方法没有区别。</p>
<p>可选链 <code>self?.</code> 如果 <code>self</code> 是 <code>nil</code> 以及 <code>guard let ... else {< 则退出闭包</code></p></p>
<p style="font-size: 20px;">关于ios - 使用弱 self 避免在闭包中保留循环,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/51341872/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/51341872/
</a>
</p>
页:
[1]