setNeedsDisplay релиз подпредставлений?
Если пользовательское представление добавляет несколько подпредставлений к себе на основе условия if
и позже setNeedsDisplay
вызывается в этом представлении, где условие больше не true
и, таким образом, эти подпредставления не создаются, являются ли "старые" подпредставления, автоматически высвобождаемые из памяти во время drawRect
?
Или я должен беспокоиться о проверке присутствия подпредставлений, об их освобождении, а затем setNeedsDisplay
?
Я думаю, что в конечном итоге мой вопрос о последствиях памяти setNeedsDisplay
, если он эффективно удаляет из памяти старый вид и его подпредставления, а затем по существу воссоздает вид с нуля?
1 ответ
-setNeedsDisplay просто устанавливает флаг, который говорит, что "это представление должно быть перерисовано". Насколько я знаю, он ничего не сохраняет и не выпускает, а также не добавляет и не удаляет любые подпредставления.
Я не уверен, что вы пытаетесь сделать, но, похоже, вы слишком беспокоитесь. Вызывайте -setNeedsDisplay, когда состояние вашего приложения изменилось так, что требуется перерисовать данное представление. Если впоследствии вы удалите это представление из иерархии представлений, это не должно вызывать никаких проблем.