Menu
CoddyTech

object yang Dapat Diamati

Termasuk bagian Pengenalan SwiftUI dalam perjalanan Swift di Coddy. Pelajaran 40 dari 50.

Data yang dibagikan beberapa tampilan, atau yang memiliki logikanya sendiri, dimasukkan ke dalam class. Class ini mengikuti ObservableObject, dan setiap property yang ditampilkan layar diberi penanda @Published:

class Cart: ObservableObject {
    @Published var count = 0

    func add() {
        count += 1
    }
}

Tampilan yang membuat object menyimpannya dengan @StateObject. SwiftUI menjaga object itu tetap hidup selama tampilan berada di layar, dan menggambar ulang tampilan setiap kali property yang dipublikasikan berubah:

struct ContentView: View {
    @StateObject private var cart = Cart()

    var body: some View {
        VStack {
            Text("Items: \(cart.count)")
            Button("Add to cart") {
                cart.add()
            }
        }
    }
}

Tampilan anak yang menerima object yang sudah ada dari parent menandainya dengan @ObservedObject: tampilan ini mengamati object tersebut, tetapi tidak memilikinya.

challenge icon

Tantangan

Sedang

class Scoreboard belum terhubung ke layar. Jadikan sebagai ObservableObject dengan points yang memakai @Published, simpan di ContentView dengan @StateObject, dan buat tombol memanggil scoreboard.score(). Teksnya harus berbunyi Points: 10 setelah satu kali ketukan.

Coba sendiri

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pengenalan SwiftUI

Latihan sendiri: Playground SwiftUI