Ich habe zwei View Controller, die auf Konstanten innerhalb einer einzigen globalen Struktur zugreifen, definiert in einer separaten Datei. Die Struktur ist wie folgt:Swift: Lebensdauer des statischen Feldes innerhalb einer globalen Struktur
struct Constants {
struct FAQ {
struct General {
static let QUESTIONS: [String] = [
//Some String questions here
]
static let ANSWERS: [String] = [
//Answers here
]
}
struct Specific {
static let QUESTIONS: [String] = [
//Questions
]
}
}
struct Tips {
struct General {
static let QUESTIONS: [String] = [
//Questions
]
static let ANSWERS: [String] = [
//Answers
]
}
}
}
nun von einem VC, die FAQs meiner App zu steuern, greife ich Constants.FAQ und alle Daten in seinem Inneren. Von einem anderen VC, der die Tipps behandelt, greife ich auf Constants.Tips zu.
Nun zu meiner Frage. Was ist die Lebensdauer der FAQ-Struktur, nachdem der FAQ View Controller vom Betriebssystem aus dem Speicher entfernt wurde? Bleibt es für die Lebensdauer der App in Erinnerung?
Um einen Anwendungsfall zu geben, nehmen Sie zum Beispiel: FAQ VC wird erstellt und startet die Ausführung. FAQ VC greift auf Constants.FAQ.General.QUESTIONS zu und bearbeitet sie. Jetzt stoppt FAQ VC die Ausführung und wird aus dem Speicher entfernt. Nach einer Weile werden FAQ-Tipps erstellt und die Ausführung gestartet. Es greift auf Constants.Tips.General.QUESTIONS zu und führt die Verarbeitung aus. Jetzt ist das String-Array "Constants.FAQ.General.QUESTIONS" noch im Speicher? Oder war seine Lebensdauer auf den Zugriff in der FAQ VC beschränkt?
Eine andere Frage, während ich gerade dabei bin: Nutzt diese Art von Struktur gute Praxis?
Danke.