UserDefault 不应只删除一个键

UserDefault should not remove only one key

我想删除 userdefaults 中的所有对象。同时点击注销按钮。期望一个 bool 键不应该 remove.May 我知道它可能

func resetUserDefaults() {

    print("userDefaults successfully removed from the app")

    let userDefaults = UserDefaults.standard
    let dict = userDefaults.dictionaryRepresentation()

    dict.keys.forEach { key in        
       userDefaults.removeObject(forKey: key)
     }
}

让我们像这样添加条件

 dict.keys.forEach { key in 
        if key != "YouBoolKey" {
            userDefaults.removeObject(forKey: key)
        }
 }

最后别忘了同步

UserDefaults.standard.synchronize()

我更喜欢:

for key in dict.keys where key != "YouBoolKey" {
    userDefaults.removeObject(forKey: key)
}

一种简单的方法是,将登录数据放在一个对象(结构)中,将其保存到 UserDefaults 并在按下注销按钮时将其删除。

您可以参考 link.

查看我的方式:

正在擦除数据。 您还可以在 KEYS 数组上使用 for...。