Junior — Middle
Можете ли да обясните какво е StateObject в контекста на разработката?
sobes.tech AI
Отговор от AI
@StateObject — това е свойство-обвивка в SwiftUI, използвана за създаване и управление на жизнения цикъл на обект, който реализира протокола ObservableObject.
Основната задача на StateObject е да гарантира, че обектът ще бъде създаден веднъж и ще се запази при повторни преизчертавания на View, в който е обявен. Това е важно за съхраняване на състояние, което трябва да оцелее актуализациите на интерфейса.
Пример за използване:
class ViewModel: ObservableObject {
@Published var count = 0
}
struct ContentView: View {
@StateObject private var viewModel = ViewModel()
var body: some View {
VStack {
Text("Count: \(viewModel.count)")
Button("Increment") {
viewModel.count += 1
}
}
}
}
Тук viewModel се създава веднъж и запазва състоянието между актуализациите на интерфейса.