UIView Управление памятью
Посредственный глупый вопрос: так что в моем iphone UI у меня есть кнопка Пуск / Стоп, которая программно создает UIView. Если кнопка находится в состоянии остановки, я выделяю initWithFrame UIView, который был объявлен в заголовочном файле, добавляю его в мой супервизор и затем освобождаю его. Так что теперь счет удержания должен быть равен единице, и он хранится в моем супервизоре. Если я нажимаю кнопку "Стоп", я удаляю представление из моего супервизора, вызывая метод removeFromSuperView и устанавливая для моего объекта UIView значение nil.
Итак, вот проблема, которая меня интересует: допустим, пользователь нажимает кнопку запуска, создает представление, а затем закрывает мою программу. Она запускает кучу других программ, которые, как понимает устройство, требуют больше памяти, убивая мое приложение и запуская в моей программе dealloc. Станет ли этот UIView утечкой памяти? Или супервизор достаточно умен, чтобы проверить, живы ли дети, и сделать что-нибудь соответственно.
По сути, я был воспитан только для того, чтобы сделать кучу [objectName release] в методе dealloc. Должен ли я сделать условное утверждение, такое как проверка, если UIView не ноль, и если так, удалить его из суперпредставления?
Спасибо
1 ответ
Суперпредставление сохраняет все добавленные к нему представления и вызовет release для всех этих подпредставлений, когда оно будет удалено.
Когда операционная система убивает ваше приложение, она восстанавливает всю связанную с ней память независимо от того, была ли у вас утечка памяти в приложении или нет.