在Objective-C的非平凡块中,我注意到使用了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的方法。当您有可能在将来某个时候调用的闭包时,传递self的weak实例很重要,这样您就不会通过保存对已取消初始化的对象的引用来创建保留周期。

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

本质上,您是在说如果自我不再存在,请不要对其进行引用,也不要对它执行操作。

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

10-10 21:32