Die Frage lautet "Array of Array", aber ich denke, die meisten Leute kommen wahrscheinlich hierher, um zu wissen, wie man ein Array speichert UserDefaults
. Für diese Leute werde ich einige allgemeine Beispiele hinzufügen.
String-Array
Array speichern
let array = ["horse", "cow", "camel", "sheep", "goat"]
let defaults = UserDefaults.standard
defaults.set(array, forKey: "SavedStringArray")
Array abrufen
let defaults = UserDefaults.standard
let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
Int Array
Array speichern
let array = [15, 33, 36, 723, 77, 4]
let defaults = UserDefaults.standard
defaults.set(array, forKey: "SavedIntArray")
Array abrufen
let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedIntArray") as? [Int] ?? [Int]()
Bool-Array
Array speichern
let array = [true, true, false, true, false]
let defaults = UserDefaults.standard
defaults.set(array, forKey: "SavedBoolArray")
Array abrufen
let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedBoolArray") as? [Bool] ?? [Bool]()
Datumsarray
Array speichern
let array = [Date(), Date(), Date(), Date()]
let defaults = UserDefaults.standard
defaults.set(array, forKey: "SavedDateArray")
Array abrufen
let defaults = UserDefaults.standard
let array = defaults.array(forKey: "SavedDateArray") as? [Date] ?? [Date]()
Objektarray
Benutzerdefinierte Objekte (und folglich Arrays von Objekten) erfordern etwas mehr Arbeit zum Speichern UserDefaults
. Informationen dazu finden Sie unter den folgenden Links.
Anmerkungen
- Mit dem Null-Koaleszenz-Operator (
??
) können Sie das gespeicherte Array oder ein leeres Array ohne Absturz zurückgeben. Dies bedeutet, dass, wenn das Objekt Null zurückgibt, der Wert nach dem folgt??
stattdessen Operator verwendet wird .
- Wie Sie sehen können, war die Basis - Setup das gleiche für
Int
, Bool
und Date
. Ich habe es auch mit getestetDouble
. Soweit ich weiß, funktioniert alles, was Sie in einer Eigenschaftsliste speichern können, so.