Ich habe dynamische Schlüsselgenerierung, um meine Datenbank zu bauen, also muss ich in der Lage sein, alle Schlüssel zu finden, die der Benutzer produzierte, wenn ich wollte Führen Sie einen vollständigen Löschvorgang durch.Swift3 - Wie kann ich alle Schlüssel in Foundation.UserDefaults finden, damit ich alle meine Daten löschen kann
func deleteAllData(){
let userDefaults = Foundation.UserDefaults.standard
let keys = userDefaults.dictionaryRepresentation()
for key in keys {
print(key)
userDefaults.removeObject(forKey: String(describing: key))
}
}
So bin ich in der richtigen Wörterbuch nicht, weil der Schlüssel Ich bin hier Informationen enthält System greifen wie AppleLocale, PKKeychainVersionKey und AppleKeyboards.
Ich habe einige Funktionen in UserDefaults wie removeSuite, removeVolatileDomain und removePersistentDomain bemerkt. Gibt es einen besseren Weg, meine Daten so zu strukturieren, dass ich diese Methoden verwenden kann, oder kann ich sie bereits verwenden, wenn ich wüsste, was ich als Argument weitergeben kann.
// How I've been setting my data
userDefaults.set(taskTime, forKey: "\(taskName)_taskTime")
userDefaults.set(lastRefresh, forKey: "\(taskName)_lastRefresh")
//Swift2.x delete-all method
for key in Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys) {
NSUserDefaults.standardUserDefaults().removeObjectForKey(key)
}
Dank Kumpel, fand ich eine ähnliche Lösung. Immer noch unzufrieden, dass auf dem Telefon, das während der Entwicklung erstellt wurde, einige "schwebende" Daten gespeichert sind. Wünschte, es wäre eine Lösche alle Methode –