我在 UIView 的一个子类上添加一个 KVO 观察者到它的一个子视图。我对子视图也有很强的参考。当我调用removeObserver
中的子视图时dealloc
,我可以假设子视图仍然存在吗?我不想泄露观察者。
基本上,当dealloc
在ARC中调用时,自动调用是[super dealloc]
在此调用之前还是之后?
我在 UIView 的一个子类上添加一个 KVO 观察者到它的一个子视图。我对子视图也有很强的参考。当我调用removeObserver
中的子视图时dealloc
,我可以假设子视图仍然存在吗?我不想泄露观察者。
基本上,当dealloc
在ARC中调用时,自动调用是[super dealloc]
在此调用之前还是之后?
来自http://clang.llvm.org/docs/AutomaticReferenceCounting.html
一个类可以为名为 的实例方法提供方法定义
dealloc
。此方法将release
在对象的 final 之后但在它被释放或它的任何实例变量被销毁之前被调用。dealloc
当方法返回时,将自动调用超类的实现。
so在[super dealloc]
调用子类实现后调用。dealloc
对 [super dealloc] 的自动调用是“之后”。
您的强 ivars 在 dealloc 中仍然有效。