在Swift中,当使用“[weak self] in”时,我应该在嵌套在另一个闭包

时间:2017-02-10 20:55:44

标签: swift memory-management memory-leaks closures

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

0 个答案:

没有答案