swift
До iOS 17 использовались:
ObservableObject протокол с @Published для свойств.С iOS 17 @Observable вводит более простой и эффективный механизм, основанный на макросах компилятора. При изменении любого наблюдаемого свойства объекта, помеченного @Observable, SwiftUI или другие части фреймворка, которые подписаны на изменения, автоматически обновляют свой UI. Это происходит без необходимости явно указывать @Published или использовать KVO.
Синтаксис:
swift
Использование в SwiftUI (по аналогии с @StateObject или @ObservedObject):
swift
Основные преимущества @Observable по сравнению с @ObservedObject / @Published:
@Published.objectWillChange.send().@ObservationIgnored: Позволяет явно исключить свойства из наблюдения.Это основной способ создания наблюдаемых объектов в iOS 17 и более новых версиях, рекомендованный Apple.