Menu
Coddy logo textTech

Ortam Nesneleri

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

Bir nesneyi ona ihtiyaç duyan görünüme ulaşana kadar her görünümden geçirmek zahmetli hâle gelir. Bunun yerine nesneyi ortama yerleştirin; böylece altındaki herhangi bir görünüm onu okuyabilir:

@StateObject private var cart = Cart()

var body: some View {
    NavigationStack {
        ShopView()
    }
    .environmentObject(cart)
}

Daha aşağıdaki bir görünüm, başlangıç değeri olmadan neye ihtiyaç duyduğunu @EnvironmentObject ile bildirir:

struct CartBadge: View {
    @EnvironmentObject var cart: Cart

    var body: some View {
        Text("\(cart.count) in cart")
    }
}

ShopView sepete hiçbir zaman değinmez, ancak içindeki CartBadge yine de aynı nesneyi alır. Yukarıdaki görünümlerden hiçbiri ona .environmentObject sağlamazsa, CartBadge gösterildiğinde uygulama bir hatayla durur.

challenge icon

Görev

Orta

CartBadge paylaşılan sepetin sayısını göstermelidir. cart değerini .environmentObject ile VStack'e sağlayın ve CartBadge'i @EnvironmentObject ile okuyacak şekilde değiştirin. Rozet, bir dokunuştan sonra 1 in cart değerini okumalıdır.

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