gpt4 book ai didi

swift - 我们是否需要在每个嵌套闭包内重复 `guard let self = self else { return }` 以保持强大的 self ?

转载 作者:行者123 更新时间:2023-12-04 12:34:01 92 4
gpt4 key购买 nike

我需要在内心深处保持坚强的自我。
我知道声明[weak self]就够了外封闭仅一次。
但是guard let self = self else { return }呢? ,是否也足以为外部闭包声明一次?我们这里有任何边缘情况吗?

  apiManager.doSomething(user: user) { [weak self] result in
guard let self = self else { return }

self.storageManager.doSomething(user: user) { result in
// guard let self = self else { return } <- DO WE NEED IT HERE ?
self.doSomething()
}
}
似乎语言分析器说没有一个声明就足够了,但要确定。

最佳答案

是的,一个就够了。
如果你写

guard let self = self else { return }
您将创建一个新的局部变量,该变量将持有对外部弱自身的强引用。
这和写作一样
guard let strongSelf = self else { return }
然后使用 strongSelf对于块的其余部分。

关于swift - 我们是否需要在每个嵌套闭包内重复 `guard let self = self else { return }` 以保持强大的 self ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66453474/

92 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com