Swift - UserDefaults
Aus Wikizone
Version vom 24. Januar 2023, 11:34 Uhr von 134.3.86.14 (Diskussion) (Die Seite wurde neu angelegt: „<syntaxhighlight lang="swift"> import UIKit let defaults = UserDefaults.standard let dictionaryKey = "myDictionary" // good Practice to set a constant for bet…“)
import UIKit
let defaults = UserDefaults.standard
let dictionaryKey = "myDictionary" // good Practice to set a constant for better reuse and less typing errors
// setting defaults key:value pairs...
defaults.set(0.24, forKey: "Volume")
defaults.set(true, forKey: "MusicOn")
defaults.set("Stephan", forKey: "PlayerName")
defaults.set(Date(), forKey: "AppLastOpened")
let array = [1, 2, 3]
defaults.set(array, forKey: "myArray")
let dictionary = ["name": "Stephan"]
defaults.set(dictionary, forKey: dictionaryKey)
// reading...
let volume = defaults.float(forKey: "Volume") // read a basic type
let appLastOpened = defaults.object(forKey: "AppLastOpened") // read an object
let myArray = defaults.array(forKey: "myArray")
let myDictionary = defaults.dictionary(forKey: dictionaryKey)
Hinweise
Am Besten setzt man zuerst eine Konstante, damit man leicheter auf die UserDefaults zugreifen kann
let defaults = UserDefaults.standard
Um einen Wert für einen Schlüssel zu setzen, verwenden Sie die Methode set:
UserDefaults.standard.set("Hallo, Welt!", forKey: "Begrüßung")
Um den Wert für einen Schlüssel abzurufen, verwenden Sie die Methode object(forKey:), mit object wird any als Typ verwendet. Das kann man dann noch mit as downcasten. Ansonsten kann man auch für
let begrüßung = UserDefaults.standard.object(forKey: "Begrüßung") as? String
Sie können auch die Methode set verwenden, um andere Typen wie Bool, Int, Float, Double, URL und Data zu speichern:
UserDefaults.standard.set(true, forKey: "istErsterStart") let istErsterStart = UserDefaults.standard.bool(forKey: "istErsterStart")
Sie können auch die Methode removeObject(forKey:) verwenden, um einen Wert für einen Schlüssel zu entfernen:
UserDefaults.standard.removeObject(forKey: "Begrüßung")
Es ist wichtig zu beachten, dass UserDefaults für kleine Mengen an Daten gedacht ist und nicht für große Dateien oder vertrauliche Daten geeignet ist.