我们正在讨论什么是避免闭包中的保留循环的最佳方法。我们正在讨论以下两种方法。
func getStock() { [weak self] (stock)in
self?.dismissActivityIndicator()
}
对比
func getStock(){ [weak self] (stock) in
guard let strongSelf = self else { return }
strongSelf.dismissActicityIndicator()
}
其中一个比另一个更好或更安全吗?为什么?如果有帮助,我们的讨论基于多线程场景。
最佳答案
在实践中,这两种方法之间没有区别。
可选链接 self?.
如果 self
为 nil
以及 guard let ... else {
关于ios - 使用 weak self 避免在闭包中保留循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341872/