DevPrep

Все темы › Combine

Что делает @Published?

Middle PRO

Суть

@Published — property wrapper, который к свойству класса добавляет Publisher: $property имеет тип Published<Value>.Publisher с Failure == Never. Он эмитит новое значение на willSet — то есть до того, как свойство реально изменилось. Работает в любом классе (в struct нельзя: обёртка держит внутренний publisher по ссылке), а не только в ObservableObject. ObservableObject лишь добавляет сверху синтез objectWillChange: компилятор пробрасывает в него события всех @Published-свойств, и SwiftUI на это перерисовывает view.

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

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

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

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

Скачать DevPrep в App Store