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