Junior — Middle
Ποια νέα μέσα παρακολούθησης και διαχείρισης κατάστασης στο SwiftUI εισήχθησαν μετά την έκδοση iOS 13;
sobes.tech AI
Απάντηση από AI
Μετά το iOS 13, το SwiftUI πρόσθεσε νέα μέσα για την παρακολούθηση και διαχείριση της κατάστασης, που επεκτείνουν τις δυνατότητες του αντιδραστικού προγραμματισμού:
- @StateObject — για τη δημιουργία και διαχείριση του κύκλου ζωής αντικειμένων ObservableObject μέσα σε μια προβολή, διασφαλίζοντας ότι το αντικείμενο δημιουργείται μόνο μία φορά.
- @ObservedObject — για την εγγραφή σε αλλαγές εξωτερικών αντικειμένων ObservableObject.
- @EnvironmentObject — για τη μεταφορά δεδομένων μέσω της ιεραρχίας των προβολών χωρίς να τα περνάτε ρητά.
- @AppStorage — για την άνετη σύνδεση της κατάστασης με το UserDefaults.
- @SceneStorage — για την αποθήκευση της κατάστασης εντός του κύκλου ζωής της σκηνής.
Αυτές οι ιδιότητες επιτρέπουν την αποτελεσματική παρακολούθηση αλλαγών δεδομένων και την αυτόματη ενημέρωση της διεπαφής χωρίς επιπλέον κώδικα.
Παράδειγμα χρήσης του @StateObject:
class ViewModel: ObservableObject {
@Published var count = 0
}
struct ContentView: View {
@StateObject private var viewModel = ViewModel()
var body: some View {
VStack {
Text("Count: \(viewModel.count)")
Button("Increment") {
viewModel.count += 1
}
}
}
}