Я работаю над приложением для iPhone, в котором ряд UIViews динамически добавляются и удаляются из основного окна UIWindow.
При моделировании ошибок нехватки памяти в симуляторе я обнаружил, что не все контроллеры представления получают уведомление didReceiveMemoryWarning. К сожалению, это контроллеры, которые больше всего выиграют от реализации этого метода.
Я не могу найти хорошую информацию о том, где и как вызывается метод. Я прочитал упоминания о том, что он отправляется «всем UIViewControllers», но это, очевидно, не тот случай. Добавление точки останова в один из классов, которые получают уведомление, также не особо показательно.
Это сложный проект, но одним из способов добавления этих представлений является:
- (void) showMyView
{
if(!myViewController){
myViewController = [[MyViewController alloc]init];
[window addSubview:myViewController.view];
}
}
MyViewController - это подкласс другого класса, MySuperViewController, который сам является подклассом UIViewController. Ни у одного из этих классов нет соответствующих NIB; иерархии представлений создаются программно.
Я ищу указатели на то, как можно диагностировать проблему.