OGeek|极客世界-中国程序员成长平台

标题: ios - 使用弱 self 避免在闭包中保留循环 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:21
标题: ios - 使用弱 self 避免在闭包中保留循环

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

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

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

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



Best Answer-推荐答案


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

可选链 self?. 如果 selfnil 以及 guard let ... else {< 则退出闭包

关于ios - 使用弱 self 避免在闭包中保留循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341872/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4