作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在内心深处保持坚强的自我。
我知道声明[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/
我在一个 twig 模板中使用 Assetic 来指定要从我的包中使用的 2 个 JS 文件 { % javascripts '@JiraExtendedReportsBund
我正在做一个 VS 包,它在菜单中有一个 DynamicItemStart 按钮。我在 VS 启动时加载动态按钮的内容没有任何问题,但我试图在某些事件(例如打开项目)之后向其内容添加更多命令。我将新命
需求是从plsql调用java方法,我可以通过loadjava命令来实现它。我遵循的步骤是: 第 1 步:创建 Java Class/jar 文件并将其放置在 Unix 机器上 第2步:将Java C
我是一名优秀的程序员,十分优秀!