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