Junior — Middle
Масоилинг дар бораи принсипи кории объектии ObservableObject ва нақши он дар барномасозии реактивӣ?
sobes.tech AI
Ҷавоб аз AI
ObservableObject протокол дар SwiftUI мебошад, ки ба объект имкон медиҳад, ки ба обунаҳо дар бораи тағирот дар маълумоти худ огоҳӣ диҳад. Ин унсури калидии барномасозии реактивӣ мебошад, ки дар он UI автоматӣ нав карда мешавад вақте ки ҳолати модели тағир меёбад.
Вақте ки як синф ба ObservableObject мувофиқат мекунад ва хусусиятҳои худро бо @Published нишон медиҳад, ҳар тағирот дар ин хусусиятҳо огоҳиномаҳоро ба вуҷуд меорад ва тамғаҳои SwiftUI алоқаманд нав карда мешаванд.
Масалан:
import SwiftUI
import Combine
class UserSettings: ObservableObject {
@Published var username: String = ""
}
struct ContentView: View {
@ObservedObject var settings = UserSettings()
var body: some View {
TextField("Номи корбар", text: $settings.username)
Text("Салом, \(settings.username)!")
}
}
Ин ҷо, вақте ки номи корбар тағир меёбад, матн дар интерфейс автоматӣ нав карда мешавад. Ин тарз, ObservableObject модел ва намоишро пайванд мекунад ва навсозии реактивии UI-ро таъмин мекунад.