Junior — Middle
Czy można wyjaśnić, czym jest ObservableObject w kontekście SwiftUI i jak jest używany do zarządzania stanem?
sobes.tech AI
Odpowiedź od AI
ObservableObject w SwiftUI to protokół, który pozwala tworzyć obiekty z obserwowalnym stanem. Gdy właściwości takiego obiektu się zmieniają, SwiftUI automatycznie aktualizuje powiązone widoki.
Aby używać ObservableObject, należy:
- Utworzyć klasę dziedziczącą po
ObservableObject. - Oznaczyć właściwości, które mają być śledzone, adnotacją
@Published. - W widoku użyć właściwości z adnotacją
@ObservedObjectlub@StateObject, aby subskrybować zmiany.
Przykład:
class UserSettings: ObservableObject {
@Published var username: String = "Guest"
}
struct ContentView: View {
@StateObject var settings = UserSettings()
var body: some View {
VStack {
Text("Hello, \(settings.username)!")
TextField("Username", text: $settings.username)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
}
}
}
W tym przykładzie, gdy username się zmienia, tekst w interfejsie jest automatycznie aktualizowany.