在控制器中,我们在viewDidAppear
添加了观察者,并在viewWillDisappear
中将其删除。 init/viewDidLoad
中没有观察者。
在这种情况下,出于安全目的/下面的行是dealloc
方法吗?
[[NSNotificationCenter defaultCenter] removeObserver:self];
现在问题/疑问是否有dealloc
未调用viewWillDisappear
而被调用的情况?什么时候调用内存警告。那些情况会发生什么?
感谢。
答案 0 :(得分:4)
一种情况是:
VC1
实现了类HelperVC
,它是委托,并添加了HelperVC
作为子视图。HelperVC
调用closeAll
委托方法上的关闭按钮,该方法在VC1
中实施。closeAll
中的VC1
方法将HelperVC
对象设置为nil
。dealloc
而不是HelperVC
中调用viewWillDisappear
方法。由于我们未删除HelperVC
视图,因此我们将HelperVC
对象设为nil
。