setNeedsDisplay релиз подпредставлений?

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам