是否存在在没有调用viewWillDisappear的情况下调用dealloc的情况?

时间:2014-04-30 05:28:47

标签: ios objective-c

在控制器中,我们在viewDidAppear添加了观察者,并在viewWillDisappear中将其删除。 init/viewDidLoad中没有观察者。

在这种情况下,出于安全目的/下面的行是dealloc方法吗?

[[NSNotificationCenter defaultCenter] removeObserver:self];

现在问题/疑问是否有dealloc未调用viewWillDisappear而被调用的情况?什么时候调用内存警告。那些情况会发生什么?

感谢。

1 个答案:

答案 0 :(得分:4)

一种情况是:

  1. VC1实现了类HelperVC,它是委托,并添加了HelperVC作为子视图。
  2. HelperVC调用closeAll委托方法上的关闭按钮,该方法在VC1中实施。
  3. closeAll中的VC1方法将HelperVC对象设置为nil
  4. 现在在dealloc而不是HelperVC中调用viewWillDisappear方法。由于我们未删除HelperVC视图,因此我们将HelperVC对象设为nil