首页 > 解决方案 > 使用弱自我避免在闭包中保留循环

问题描述

我们一直在讨论什么是避免闭包中保留循环的最佳方法。我们讨论了两种方法。

    func getStock() { [weak self] (stock)in
       self?.dismissActivityIndicator()
    }

对比

    func getStock(){ [weak self] (stock) in
      guard let strongSelf = self else { return }
      strongSelf.dismissActicityIndicator()
    }

其中一个比另一个更好或更安全吗?为什么?如果有帮助,我们的讨论是基于多线程场景的。

标签: iosswiftclosuresretain-cycle

解决方案


在实践中,这两种方法没有区别。

可选链self?.退出闭包 if selfis nilas well asguard let ... else {


推荐阅读