Sobes.tech
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ą @ObservedObject lub @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.