gpt4 book ai didi

swift - 在 swift 中使用 strongSelf 的正确方法是什么?

转载 作者:IT王子 更新时间:2023-10-29 05:38:45 26 4
gpt4 key购买 nike

在 Objective-C 的非平凡 block 中,我注意到 weakSelf/strongSelf 的用法。

在 Swift 中 strongSelf 的正确用法是什么?像这样的东西:

if let strongSelf = self {
strongSelf.doSomething()
}

所以对于闭包中包含 self 的每一行我应该添加 strongSelf 检查?

if let strongSelf = self {
strongSelf.doSomething1()
}

if let strongSelf = self {
strongSelf.doSomething2()
}

有什么方法可以让上面的代码更优雅吗?

最佳答案

使用 strongSelf 是一种检查 self 不等于 nil 的方法。当您有一个可能在将来某个时间调用的闭包时,传递一个 weak 的 self 实例很重要,这样您就不会通过持有对已被调用的对象的引用来创建保留循环去初始化。

{[weak self] () -> void in 
if let strongSelf = self {
strongSelf.doSomething1()
}
}

本质上,您是在说如果 self 不再存在,则不要持有对它的引用,也不要对其执行操作。

关于swift - 在 swift 中使用 strongSelf 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454482/

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