Sobes.tech
Junior — Middle

Pode explicar o que é um StateObject no contexto do desenvolvimento?

sobes.tech IA

Resposta da IA

@StateObject — é uma propriedade-embalagem no SwiftUI, usada para criar e gerir o ciclo de vida de um objeto que implementa o protocolo ObservableObject.

A principal tarefa do StateObject é garantir que o objeto seja criado uma única vez e seja preservado durante as re-renderizações da View onde é declarado. Isto é importante para armazenar estados que devem sobreviver às atualizações da interface.

Exemplo de uso:

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
            }
        }
    }
}

Aqui, viewModel é criado uma vez e mantém o estado entre as atualizações da interface.