ios - 使用 weak self 避免在闭包中保留循环

标签 ios swift closures retain-cycle

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

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

对比

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

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

最佳答案

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

可选链接 self?. 如果 selfnil 以及 guard let ... else {

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

相关文章:

ios - 如何连续发送 2 个请求

ios - 如何应用iOS VNImageHomographicAlignmentObservation warpTransform?

swift - 我应该如何处理参数验证 Swift

javascript - 函数式编程 : What's the difference between using a closure and using the bind method?

groovy - 如何在 Groovy 中定义 @CompileStatic 兼容闭包?

Javascript 闭包性能

ios - Xcode 中针对 iPad 的选项

ios - 将图像保存到 Realm

swift - 定义函数类型时元组类型中不允许使用默认参数

iphone - 代码无法在 iPhone 上运行,但可以在模拟器上运行