Menu
Coddy logo textTech

Gözlemlenebilir Nesneler

Coddy'nin Swift Journey'sinin SwiftUI'ye Giriş bölümünün bir parçası. Ders 40 / 50.

Birden fazla görünümün paylaştığı veya kendi mantığı olan veriler bir sınıfa konur. Bu sınıf ObservableObject protokolüne uyar ve ekranın görüntülediği her özellik @Published ile işaretlenir:

class Cart: ObservableObject {
    @Published var count = 0

    func add() {
        count += 1
    }
}

Nesneyi oluşturan görünüm, nesneyi @StateObject ile depolar. SwiftUI, görünüm ekrandayken bu tek nesneyi canlı tutar ve yayımlanmış bir özellik değiştiğinde görünümü yeniden çizer:

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

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

Üst görünümünden mevcut bir nesne alan alt görünüm, bunun yerine nesneyi @ObservedObject olarak işaretler: nesneyi izler ancak ona sahip değildir.

challenge icon

Görev

Orta

Scoreboard sınıfı ekrana bağlı değil. Onu ObservableObject yapın, bir @Published points değişkeni ekleyin, ContentView içinde @StateObject ile saklayın ve düğmenin scoreboard.score() çağırmasını sağlayın. Metin, bir kez dokunduktan sonra Points: 10 olarak görünmelidir.

Kendin dene

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

SwiftUI'ye Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground