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 тағйир меёбад, матн дар интерфейс автоматӣ навсозӣ мешавад.