Menu
Coddy logo textTech

A Propriedade @State

Parte da seção Introdução ao SwiftUI do Journey de Swift da Coddy. Lição 20 de 50.

O corpo de uma view é recalculado a partir dos dados dela. Para ter dados que mudam, marque uma propriedade com @State. Quando uma propriedade de estado muda, o SwiftUI executa o corpo novamente e atualiza a tela:

struct ContentView: View {
    @State private var count = 0

    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("Add one") {
                count += 1
            }
        }
    }
}

Cada toque executa count += 1, e o texto mostra o novo número. Você nunca atualiza o texto por conta própria: o texto é descrito em termos de count, então ele acompanha o valor.

Uma var simples em uma view não pode ser alterada a partir do seu corpo, porque as views são structs. @State armazena o valor fora da struct para que ele sobreviva a cada redesenho. Marque o estado como private: ele pertence a esta view.

challenge icon

Desafio

Fácil

Finalize o contador de toques. A ação do botão está vazia: faça com que cada toque adicione 1 a taps, para que o texto mostre Taps: 1 após um toque e Taps: 2 após dois.

Experimente você mesmo

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Introdução ao SwiftUI

Pratique por conta própria: Playground de Swift