在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) {}
最外面的[weak self]
无论如何都会使所有以下自我都是可选的。这是否意味着它一直在处理嵌套闭包内部的内存处理?如果我在这两个领域都使用自我,我是否都需要它?