setNeedsDisplay релиз подпредставлений? - PullRequest
0 голосов
/ 27 июня 2011

Если пользовательское представление добавляет к себе несколько подпредставлений на основе условия if, и позже в этом представлении вызывается setNeedsDisplay, когда условие больше не true и, следовательно, эти подпредставления не создаются, являются «старые» подпредставления автоматически высвобождаются из памяти во время drawRect?

Или, стоит ли мне беспокоиться о проверке наличия подпредставлений, их освобождении, а затем setNeedsDisplay?

Полагаю, что в конечном итоге мой вопрос касается последствий для памяти setNeedsDisplay, если он эффективно удаляет из памяти старый вид и его подпредставления, а затем по существу воссоздает вид с нуля?

1 Ответ

1 голос
/ 27 июня 2011

-setNeedsDisplay просто устанавливает флаг, который говорит, что «это представление необходимо перерисовать». Насколько я знаю, он ничего не сохраняет и не выпускает, а также не добавляет и не удаляет любые подпредставления.

Я не уверен, что вы пытаетесь сделать, но, похоже, вы слишком беспокоитесь. Вызывайте -setNeedsDisplay, когда состояние вашего приложения изменилось так, что требуется перерисовать данное представление. Если впоследствии вы удалите это представление из иерархии представлений, это не должно вызывать никаких проблем.

...