Menu
Coddy logo textTech

אובייקטי סביבה

חלק מהיחידה מבוא ל-SwiftUI במסלול ה-Swift של Coddy. שיעור 41 מתוך 50.

העברת אובייקט דרך כל תצוגה עד לזו שזקוקה לו נעשית מייגעת. שימו אותו במקום זאת בסביבה, וכל תצוגה שמתחת יכולה לקרוא אותו:

@StateObject private var cart = Cart()

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

תצוגה בהמשך מצהירה על מה שהיא צריכה באמצעות @EnvironmentObject, ללא ערך התחלתי:

struct CartBadge: View {
    @EnvironmentObject var cart: Cart

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

ShopView לא מזכיר את העגלה, אבל CartBadge שבתוכו עדיין מקבל את אותו אובייקט. אם אף תצוגה מעליו לא מספקת לו את .environmentObject, האפליקציה נעצרת עם שגיאה כאשר CartBadge מוצג.

challenge icon

אתגר

בינוני

CartBadge צריך להציג את מספר הפריטים בעגלה המשותפת. ספק את cart ל־VStack באמצעות .environmentObject, ושנה את CartBadge כך שיקרא אותו באמצעות @EnvironmentObject. התג צריך להציג 1 in cart לאחר הקשה אחת.

נסו בעצמכם

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מבוא ל-SwiftUI

תרגלו בעצמכם: SwiftUI אונליין