Sobes.tech
Junior — Middle

Kaip veikia būsenos stebėjimo mechanizmas su ObservedObject?

sobes.tech AI

Atsakymas iš AI

SwiftUI mechanizmas stebėti būseną naudojant @ObservedObject yra pagrįstas ObservableObject protokolu ir pokyčių publikavimu per @Published.

Kai klasė pažymėta kaip ObservableObject, ji gali pranešti prenumeratoriams apie savo savybių pokyčius. Savybės, pažymėtos kaip @Published, automatiškai generuoja įvykius, kai jų reikšmė pasikeičia. SwiftUI komponentas, kuris naudoja @ObservedObject, prenumeruoja šiuos įvykius ir perpiešia save, kai jie įvyksta.

Pavyzdys:

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

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

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

Čia, kai username UserSettings keičiasi, ContentView sąsaja automatiškai atnaujinama.