Я только что наткнулся на проблему в моем приложении: Я протестировал вызовы didReceiveMemoryWarning
к UIViewController
, включая последующие вызовы для viewDidUnload
.
Раньше это нормально работало в старых версиях моего приложения, но теперь не работало в iPhone Simulator:
didReceiveMemoryWarning
просто больше не вызывается.
Это было вызвано вызовом [NSNotificationCenter defaultCenter] removeObserver: self]
в viewWillDisappear
(сам является UIVControliew) чтобы отменить регистрацию для некоторых уведомлений жизненного цикла, которые я добавил в viewDidAppear
.
Этот глобальный вызов removeObserver:
не только удалил мои добавленные уведомления, но и, очевидно, системное уведомление UIApplicationDidReceiveMemoryWarningNotificationController вызвало UIApplicationDidReceiveMemoryWarningNotificationControl Вызывается didReceiveMemoryWarning
.
Это поведение является намеренным? Я не смог найти ссылку / документ, в котором указывалось, что вызов removeObserver:
внутри UIViewController нарушает стандартную обработку memoryWarning.