DevPrep

Все темы › SwiftUI

Чем время жизни view отличается от времени жизни структуры View?

Senior PRO

Суть

Структура View — одноразовое описание: SwiftUI создаёт её каждый раз, когда пересчитывается body родителя, вызывает у неё body и выбрасывает. «Сама view» в смысле времени жизни — это узел в графе атрибутов, привязанный к идентичности (позиции в дереве или явному id). Узел живёт с первой вставки в дерево до момента, когда идентичность исчезает, и именно в нём хранятся @State, фокус, задачи .task и текущие анимации.

Поэтому есть три разных «времени»: init структуры (часто, должен быть дешёвым и без побочных эффектов), вызов body (когда изменились зависимости) и жизнь идентичности (начинается и заканчивается редко).

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store