SwiftyUserDefaults für Swift: Komplette Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist SwiftyUserDefaults und warum braucht man es?

SwiftyUserDefaults ist eine leichte, aber leistungsstarke Wrapper-Bibliothek für die Standardklasse UserDefaults in Swift. Wenn Sie schon einmal direkt mit UserDefaults gearbeitet haben, wissen Sie, dass das mühsam sein kann: Sie müssen viel Boilerplate-Code schreiben, um Werte zu speichern und abzurufen, Datentypen explizit angeben, String-Keys verwenden (was Tippfehler begünstigt) und optionale Werte behandeln.

SwiftyUserDefaults löst all diese Probleme. Es bietet:

  • Statische Typisierung: Der Compiler prüft die Typen, was Laufzeitfehler ausschließt.
  • Globalen Zugriff: Zugriff auf Werte über die praktische Eigenschaft Defaults.
  • Unterstützung für benutzerdefinierte Typen: Sie können beliebige eigene Strukturen und Klassen speichern, indem Sie das Protokoll DefaultsSerializable implementieren.
  • Syntaktischer Zucker: Die Arbeit mit UserDefaults fühlt sich an wie die Arbeit mit normalen Eigenschaften.
  • Sicherheit: Das Risiko von Tippfehlern in String-Keys entfällt.

Die Bibliothek eignet sich ideal zum Speichern kleiner Datenmengen: App-Einstellungen, UI-Status, Authentifizierungs-Tokens usw. Sie ist nicht für die Speicherung großer Datenmengen gedacht – dafür gibt es Core Data, Realm oder Dateien.

Installation

SwiftyUserDefaults wird über Swift Package Manager (SPM), CocoaPods und Carthage verteilt. Hier sind die beiden gängigsten Methoden.

Swift Package Manager (empfohlen)

  1. Öffnen Sie in Xcode das Menü: File → Add Packages...
  2. Fügen Sie die Repository-URL ein: https://github.com/sunshinejr/SwiftyUserDefaults.git
  3. Wählen Sie die Version (empfohlen wird die neueste stabile Version) und klicken Sie auf Add Package.
  4. Stellen Sie sicher, dass das Paket zu Ihrem Target hinzugefügt wurde.

CocoaPods

Fügen Sie in Ihrem Podfile hinzu:

target 'YourAppTarget' do
  use_frameworks!
  pod 'SwiftyUserDefaults', '~> 5.3'
end

Führen Sie dann pod install aus.

Nach der Installation importieren Sie die Bibliothek in der gewünschten Datei:

import SwiftyUserDefaults

Schnellstart

Kommen wir direkt zum Code. So sieht ein typisches Szenario mit UserDefaults ohne und mit SwiftyUserDefaults aus.

Ohne SwiftyUserDefaults (Standardansatz)

// Speichern
UserDefaults.standard.set("Max", forKey: "user_name")
UserDefaults.standard.set(30, forKey: "user_age")
UserDefaults.standard.set(true, forKey: "is_logged_in")

// Lesen
let name = UserDefaults.standard.string(forKey: "user_name") ?? ""
let age = UserDefaults.standard.integer(forKey: "user_age")
let isLoggedIn = UserDefaults.standard.bool(forKey: "is_logged_in")

Mit SwiftyUserDefaults

// Schlüssel definieren (kann in einer separaten Datei erfolgen)
extension DefaultsKeys {
    var userName: DefaultsKey<String> { .init("user_name") }
    var userAge: DefaultsKey<Int> { .init("user_age") }
    var isLoggedIn: DefaultsKey<Bool> { .init("is_logged_in") }
}

// Speichern
Defaults[\.userName] = "Max"
Defaults[\.userAge] = 30
Defaults[\.isLoggedIn] = true

// Lesen
let name: String = Defaults[\.userName]
let age: Int = Defaults[\.userAge]
let isLoggedIn: Bool = Defaults[\.isLoggedIn]

print("\(name) ist \(age) Jahre alt. Eingeloggt: \(isLoggedIn)")

Wie Sie sehen, ist der Code sauberer, die Typen werden zur Compile-Zeit geprüft und die Schlüssel sind an einem Ort definiert.

Wichtige Methoden und Funktionen

Sehen wir uns 10 wichtige Funktionen der Bibliothek mit Beispielen an.

1. Defaults[\.key] – Wert abrufen und setzen

Funktion: Die Hauptmethode für den Zugriff auf Werte.

Empfehlungen