Junior — Middle
Може ли да се обясни какво е ObservableObject в контекста на SwiftUI и как се използва за управление на състоянието?
sobes.tech AI
Отговор от AI
ObservableObject в SwiftUI е протокол, който позволява създаването на обекти с наблюдаемо състояние. Когато свойствата на такъв обект се променят, SwiftUI автоматично обновява свързаните с тях изгледи.
За използване на ObservableObject трябва:
- Да създадете клас, който наследява от
ObservableObject. - Да маркирате свойствата, които трябва да се следят, с аннотацията
@Published. - В изгледа да използвате свойство с аннотация
@ObservedObjectили@StateObjectза абониране за промените.
Пример:
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()
}
}
}
В този пример, при промяна на username, текстът в интерфейса се обновява автоматично.