我使用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)
}