菜鸟教程小白 发表于 2022-12-11 20:21:45

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]
查看完整版本: ios - 使用弱 self 避免在闭包中保留循环