I have dynamic key generation to create my database, so I need to find all the keys created by the user if I want to do a complete deletion.
func deleteAllData(){
let userDefaults = Foundation.UserDefaults.standard
let keys = userDefaults.dictionaryRepresentation()
for key in keys {
print(key)
userDefaults.removeObject(forKey: String(describing: key))
}
}
So I'm not in the right dictionary, because the keys that I grab here contain system information such as AppleLocale, PKKeychainVersionKey and AppleKeyboards.
I noticed some features in UserDefaults, such as removeSuite, removeVolatileDomain and removePersistentDomain. Is there a better way to structure my data so that I can use these methods or can I use them if I knew what to pass as an argument.
userDefaults.set(taskTime, forKey: "\(taskName)_taskTime")
userDefaults.set(lastRefresh, forKey: "\(taskName)_lastRefresh")
for key in Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys) {
NSUserDefaults.standardUserDefaults().removeObjectForKey(key)
}
source
share