UIView Управление памятью - PullRequest
       17

UIView Управление памятью

0 голосов
/ 03 декабря 2011

Посредственный глупый вопрос: так что в моем iphone UI у меня есть кнопка Пуск / Стоп, которая программно создает UIView. Если кнопка находится в состоянии остановки, я выделяю initWithFrame UIView, который был объявлен в заголовочном файле, добавляю его в мой супервизор и затем освобождаю его. Так что теперь счет удержания должен быть равен единице, и он хранится в моем супервизоре. Если я нажимаю кнопку «Стоп», я удаляю представление из моего супервизора, вызывая метод removeFromSuperView и устанавливая для моего объекта UIView значение nil.

Итак, вот проблема, которая меня интересует: допустим, пользователь нажимает кнопку запуска, создает представление, а затем закрывает мою программу. Она запускает кучу других программ, которые, как понимает устройство, требуют больше памяти, убивая мое приложение и запуская в моей программе dealloc. Станет ли этот UIView утечкой памяти? Или супервизор достаточно умен, чтобы проверить, живы ли дети, и сделать что-нибудь соответственно.

По сути, меня научили делать только несколько [objectName release] в методе dealloc. Должен ли я сделать условное утверждение, такое как проверка, если UIView не ноль, и если так, удалить его из суперпредставления?

Спасибо

1 Ответ

1 голос
/ 03 декабря 2011

Суперпредставление сохраняет все добавленные в него представления и будет вызывать release во всех этих подпредставлениях, когда оно выполнено dealloc'd.

Когда ОС убивает ваше приложение, оно восстанавливает всю связанную с ним память независимо от того,утечка памяти в вашем приложении или нет.

...