Sobes.tech
Junior — Middle

Quais métodos e mecanismos no SwiftUI são utilizados para atualizar a interface do utilizador quando os dados mudam?

sobes.tech IA

Resposta da IA

No SwiftUI, a atualização da interface do utilizador ao alterar os dados é realizada através de um mecanismo reativo baseado em propriedades com envoltórios de estado:

  • @State — para o estado local dentro da View. Quando o valor muda, a View é automaticamente redesenhada.
  • @Binding — para passar uma referência ao estado entre Views.
  • @ObservedObject e @StateObject — para acompanhar objetos que implementam o protocolo ObservableObject, os quais publicam alterações através de propriedades @Published.
  • @EnvironmentObject — para passar objetos através da hierarquia de Views.

Exemplo:

class UserData: ObservableObject {
    @Published var name: String = ""
}

struct ContentView: View {
    @StateObject var userData = UserData()

    var body: some View {
        VStack {
            TextField("Digite o nome", text: $userData.name)
            Text("Olá, \(userData.name)!")
        }
    }
}

Ao alterar userData.name, o SwiftUI atualiza automaticamente o texto na tela. Essa abordagem permite descrever a UI de forma declarativa, e o framework cuida da atualização quando os dados mudam.