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