Junior — Middle
Jak działa mechanizm śledzenia stanu za pomocą ObservedObject?
sobes.tech AI
Odpowiedź od AI
W SwiftUI mechanizm śledzenia stanu za pomocą @ObservedObject opiera się na protokole ObservableObject i publikowaniu zmian za pomocą @Published.
Gdy klasa jest oznaczona jako ObservableObject, może powiadamiać subskrybentów o zmianach swoich właściwości. Właściwości oznaczone jako @Published automatycznie generują zdarzenia przy zmianie wartości. Komponent SwiftUI korzystający z @ObservedObject subskrybuje te zdarzenia i jest ponownie rysowany, gdy się pojawią.
Przykład:
class UserSettings: ObservableObject {
@Published var username: String = "Guest"
}
struct ContentView: View {
@ObservedObject var settings = UserSettings()
var body: some View {
Text("Hello, \(settings.username)!")
}
}
Tutaj, gdy username w UserSettings się zmieni, interfejs ContentView zostanie automatycznie odświeżony.