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.