Set*_*hmr 8 closures memory-leaks memory-management swift
在Swift中,当使用时[weak self] in,当嵌套在另一个闭包中时,我应该加倍使用。
例:
override func viewDidLoad() {
super.viewDidLoad()
makeAPICall() { [weak self] in
self?.finishedAPICall = true
DispatchQueue.main.async { [weak self] in
// random code with self
self?.view.layoutIfNeeded()
}
}
}
func makeAPICall(completion: () -> Void) {}
Run Code Online (Sandbox Code Playgroud)
最外层[weak self]使得以下所有自我都是可选的。这是否意味着它也一直在将其保存在嵌套闭包内部的内存中?如果我在两个方面都使用自我,是否在两个方面都需要自我?
| 归档时间: |
|
| 查看次数: |
3098 次 |
| 最近记录: |