iPhone - функция Dealloc класса UIViewController никогда не вызывалась

У меня проблема с моим проектом.

У меня есть класс UIViewController «Меню», и функция Dealloc никогда не вызывается. Большая часть пользовательского интерфейса была добавлена ​​в Interface Builder и не имеет IBOutlet.

Как я могу освободить память, если не вызывается Dealloc?


Я смоделировал предупреждение о памяти, и теперь была вызвана функция Dealloc.

Вот пример моего кода:

//first.m
- (void) onButton
{ second *modalView = [[second alloc] init];
[self presentModalViewController:modalView animated:YES];
[modalView release];}

Итак, когда я нахожусь на втором экране и имитирую предупреждение о памяти, должен ли срабатывать Dealloc из первого класса?

Во всяком случае, в моем приложении не вызывается Dealloc :(.


person Andrei Neacsu    schedule 26.02.2011    source источник
comment
Я объединил вашу незарегистрированную учетную запись с вашей зарегистрированной.   -  person Robert Harvey    schedule 26.02.2011


Ответы (2)


Вы можете попробовать опцию «Аппаратное обеспечение -> Имитировать предупреждение о памяти» в симуляторе, чтобы проверить, вызывается ли -dealloc.

person Kenny K.    schedule 26.02.2011

Интерфейсный Разработчик кэширует перья до тех пор, пока не появится предупреждение о памяти или не исчерпается его кэш. В такое время он вернет всю память, которую он использовал.

person jer    schedule 26.02.2011
comment
Так я согласен с таким поведением? Должен ли я беспокоиться об этом больше? :D - person Andrei Neacsu; 26.02.2011
comment
Да, не беспокойтесь об этом, пока вы следуете правилам владения объектом. - person jer; 26.02.2011
comment
теперь все в норме :). Любые идеи о том, почему теперь работает? - person Andrei Neacsu; 26.02.2011