Sobes.tech
Junior — Middle

Как работи механизмът за следене на състоянието с ObservedObject?

sobes.tech AI

Отговор от AI

В SwiftUI механизмът за следене на състоянието с @ObservedObject се базира на протокола ObservableObject и публикуването на промени чрез @Published.

Когато клас е маркиран като ObservableObject, той може да уведомява абонатите си за промени в свойствата си. Свойствата, маркирани като @Published, автоматично генерират събития при промяна на стойността. Компонентът SwiftUI, който използва @ObservedObject, се абонира за тези събития и се прерисува при тяхното настъпване.

Пример:

class UserSettings: ObservableObject {
    @Published var username: String = "Guest"
}

struct ContentView: View {
    @ObservedObject var settings = UserSettings()

    var body: some View {
        Text("Hello, \(settings.username)!")
    }
}

Тук, при промяна на username в UserSettings, интерфейсът на ContentView ще се обнови автоматично.