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.
Görev
OrtaScoreboard 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()
}
}
}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
2İçerik Gösterme
Metin GörünümleriMetin İçinde SayılarYazı TipleriRenklerSF SymbolsTekrar - Fiyat EtiketiKendi başına pratik yap: Swift playground