Wie kann ich UserDefaults verwenden, um Zeichenfolgen, Boolesche Werte und andere Daten in Swift zu speichern / abzurufen?
ios
swift
nsuserdefaults
userdefaults
Mithun Ravindran
quelle
quelle
Antworten:
ref: NSUserdefault objectTypes
Swift 3 und höher
Geschäft
Abrufen
Entfernen
Entfernen Sie alle Schlüssel
Swift 2 und darunter
Geschäft
Abrufen
Entfernen
Registrieren
Erkennen Sie beispielsweise die App vom Start an und erstellen Sie die Struktur zum Speichern des Starts
Registrieren Sie die Standardwerte beim Start der App:
Entfernen Sie den Wert bei Beendigung der App:
und überprüfen Sie den Zustand als
Name der UserDefaults-Suite
Ein weiterer Name für eine Eigenschaftssuite , der hauptsächlich für das App Groups-Konzept verwendet wird , das Beispielszenario, das ich hier übernommen habe :
Bei Verwendung von userDefaults synchronize wurden die Detailinformationen in der doppelten Antwort hinzugefügt.
quelle
Beste Möglichkeit, UserDefaults zu verwenden
Schritte
Stichprobe
Aufzählung für Schlüssel zum Speichern von Daten
Speichern Sie in UserDefaults, wo Sie möchten
Daten überall in der App abrufen
Werte entfernen
Auf diese Weise können Sie primitive Daten optimal speichern
Update Sie müssen synchronize () nicht verwenden, um die Werte zu speichern. Wie @Moritz darauf hinwies, war es unnötig und gab den Artikel darüber. Überprüfen Sie die Kommentare für weitere Details
quelle
synchronize()
, es wird in der Dokumentation erklärt. Dies ist nicht nur nutzlos, sondern kann auch den Standardzugriff verlangsamen.Swift 4 :
Geschäft
Wiederholen
Entfernen
quelle
quelle
Sie können
NSUserDefaults
auf diese Weise schnell verwenden,quelle
synchronize()
Befehl verwendetNSUserDefaults
, um sicherzustellen, dass Ihre Daten nach einem Änderungsblock gespeichert werden. Dies war in iOS 7 und früheren Versionen möglicherweise notwendiger, aber in iOS 8 und höher sollten Sie in den meisten Situationen nicht synchronize () aufrufen. Überprüfen Sie dies für weitere InformationenSwift 5 und höher:
:) :)
quelle
Ich habe NSDictionary normal gespeichert und kann es korrekt abrufen.
// Zum Abrufen von Daten aus NSDictionary.
quelle
quelle
UserDefault + Helper.swift
Verwendung:
Wert speichern:
Wert abrufen:
Wert löschen:
quelle
Ich würde Anbus Antwort sagen vollkommen in Ordnung, aber ich musste beim Abrufen von Einstellungen Schutz hinzufügen, damit mein Programm nicht fehlschlägt
Hier ist der aktualisierte Code-Snip in Swift 5
quelle
Legen Sie in der Klasse
A
den Wert für den Schlüssel fest:In der Klasse
B
, erhalten den Wert für den Text mit der Taste , die in der Klasse deklariertA
und weisen Sie den entsprechenden Variable , die Sie brauchen:quelle
Swift 4, ich habe Enum für die Behandlung von UserDefaults verwendet.
Dies ist nur ein Beispielcode. Sie können es gemäß Ihren Anforderungen anpassen.
Zum Speichern, Abrufen, Entfernen. Auf diese Weise fügen Sie der Aufzählung einfach einen Schlüssel für Ihren UserDefaults-Schlüssel hinzu. Behandeln Sie Werte beim Abrufen und Speichern entsprechend dem Datentyp und Ihren Anforderungen.
Zum Speichern eines Werts in Benutzerstandards,
Zum Abrufen eines Werts aus den Benutzerstandards
quelle