我总是使用[weak self]
快速关闭来防止引用循环。这是下面的代码,它是正确的方法吗?
someTask(completion: {[weak self] (result) in
if self == nil {
return
}
//is it safe when reach here?
self!.xxx = yyy
self!.doLongTermWork()
self!.finish() //will crash when self is nil?
})
弱自我不会对实例保持强控制。那么什么时候self.doLongTermWork()
, 会再次self
设置到nil
其他地方呢?