DevPrep

Все темы › SwiftUI

Чем @StateObject отличается от @ObservedObject на практике?

Middle PRO

Суть (API до iOS 17, ObservableObject)

@StateObject создаёт объект один раз на время жизни view и хранит его в SwiftUI-хранилище, поэтому он переживает любые пересчёты body родителя. @ObservedObject только подписывает view на объект, который кто-то передал; если создать его в самой view, то каждый раз, когда родитель пересобирает эту view, объект создаётся заново и состояние теряется.

Правило: кто владеет — @StateObject; кому передали — @ObservedObject.

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

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

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

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

Скачать DevPrep в App Store