在Swift中,当使用;[弱自我]在“弱自我”中;,当嵌套在另一个闭包中时,我是否应该将其加倍
在Swift中,当在中使用在Swift中,当使用;[弱自我]在“弱自我”中;,当嵌套在另一个闭包中时,我是否应该将其加倍,swift,memory-management,memory-leaks,closures,Swift,Memory Management,Memory Leaks,Closures,在Swift中,当在中使用[weak self]时,当嵌套在另一个闭包中时,我是否应该将其折叠起来 例如: override func viewDidLoad() { super.viewDidLoad() makeAPICall() { [weak self] in self?.finishedAPICall = true DispatchQueue.main.async { [weak self] in // ra
[weak self]时,当嵌套在另一个闭包中时,我是否应该将其折叠起来
例如:
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) {}
最外层的[weake self]
使所有后续self都成为可选的。这是否意味着它也在处理将其保存在嵌套闭包内的内存中?如果我在这两个方面都使用self,我是否在这两个方面都需要它?比较。另外。简单的答案是不,你不需要把他们两人一组——最外面的一个就足够了。看吧,我真的认为所有3个问答都能回答这个问题——我们应该投票让他们每个人都像傻瓜一样接近。他们不回答我。。。第一个环节是在ObjC中,当涉及到这样的问题时,它通常在机械上是完全不同的。第二个链接处理的是,我不需要它在最外层,但它在最外层是否足够好是我的大问题???而且,第三个问题没有直接的答案。我呼吁有人在Swift中回答这个超级好的问题,使之成为所选的线程=P