如果控制器展开并且“self”可以变为零,我一直在每个回调中使用[弱自我]。
这是正确的做法吗?
当我应该使用[unowned self]或者两者都没有时,有什么例子......假设“self”是一个经常被解除的ViewController?
答案 0 :(得分:3)
如果有可能在self
取消初始化后仍会调用回调,则使用[weak self]
是正确的。使用[unowned self]
的原因是,您知道在self
消失后永远不会调用回调,但强烈捕获self
会导致保留周期。
[unowned self]
的一个例子是闭包的存在取决于self
的存在,那么很明显,如果self
消失,关闭将会也不见了,不会被召唤。