我们一直在讨论什么是在闭包中避免保留循环的最佳方法。我们讨论了两种方法。
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 - 使用弱 self 避免在闭包中保留循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341872/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |