我只能删除Swift中的一个UserDefaults项吗



我使用UserDefault保存字典

这是我打印出UserDefault 时的结果

Optional({
Hamburger =     {
count = 1;
subtotal = 70;
};
Cake =     {
count = 1;
subtotal = 80;
};
Steak =     {
count = 1;
subtotal = 90;
};
})

我的问题是,我能像汉堡一样只去掉其中一个键吗?

剩下的其他两个项目

只是不要删除所有UserDefault,

仅删除指定项目

您可以从UserDefaults获取字典,然后删除所需的键/对象。然后您可以再次将更新对象存储到UserDefault中。

let kUserDefault = UserDefaults.standard
let object = kUserDefault.object(forKey: "StoredValue") as! NSDictionary
let storedValue = NSMutableDictionary.init(dictionary:object)
storedValue.removeObject(forKey: "Hamburger")
print(storedValue)
kUserDefault.set(storedValue, forKey: "StoredValue")
kUserDefault.synchronize()
let newObject : NSMutableDictionary = kUserDefault.object(forKey: "StoredValue") as! NSMutableDictionary
print(newObject)

找到这个解决方案:

// To remove required value from dictionary
let userDefault = UserDefaults.standard
if var storedDictionary = userDefault.object(forKey: "StoredDictionary") as? [String: Any] {
storedDictionary.removeValue(forKey: "Hamburger")
userDefault.setValue(storedDictionary, forKey: "StoredDictionary")
}
// To fetch updated value again wherer you want.
if let storedDictionary = userDefault.object(forKey: "StoredDictionary") as? [String: Any] {
print("StoredDictionary: ", storedDictionary)
}

相关内容

最新更新