Sobes.tech
Junior — Middle

Môžete vysvetliť, čo je ObservableObject v kontexte SwiftUI a ako sa používa na správu stavu?

sobes.tech AI

Odpoveď od AI

ObservableObject v SwiftUI je protokol, ktorý umožňuje vytvárať objekty s pozorovateľným stavom. Keď sa vlastnosti takéhoto objektu zmenia, SwiftUI automaticky aktualizuje s tým spojené pohľady.

Na použitie ObservableObject je potrebné:

  • Vytvoriť triedu, ktorá dedí od ObservableObject.
  • Označiť vlastnosti, ktorých zmeny je potrebné sledovať, anotáciou @Published.
  • V pohľade použiť vlastnosť s anotáciou @ObservedObject alebo @StateObject na odber zmien.

Príklad:

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()
        }
    }
}

V tomto príklade, pri zmene username, sa text v rozhraní automaticky aktualizuje.