Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift中,当使用;[弱自我]在“弱自我”中;,当嵌套在另一个闭包中时,我是否应该将其加倍_Swift_Memory Management_Memory Leaks_Closures - Fatal编程技术网

在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

在Swift中,当在中使用
[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