gpt4 book ai didi

ios - 从 UserDefaults 中的列表中删除自定义对象

转载 作者:行者123 更新时间:2023-11-28 14:30:47 25 4
gpt4 key购买 nike

我正在尝试从存储在 NSUserDefaults 中的列表中删除一个元素。 getAll函数实现如下:

  func getAllOrders() -> [Order] {

var orders = [Order]()

if let userDefaults = UserDefaults(suiteName: "group.com.johndoe.SoupChef.Shared") {

if let ordersData = userDefaults.data(forKey: "Orders") {
orders = try! JSONDecoder().decode([Order].self, from: ordersData)
}
}

return orders
}

下面是删除订单的代码。

func delete(order :Order) {

var persistedOrders = getAllOrders()

persistedOrders.removeAll { persistedOrder in
persistedOrder.identifier.uuidString == order.identifier.uuidString
}

}

在我调用 getAllOrders 时删除上面代码中的订单后,我仍然看到所有元素,这意味着我没有看到订单被删除。

最佳答案

那是因为您没有保存更改。执行删除后,您需要将 persistedOrders 转回 JSON,然后:

userDefaults.set(json, forKey:"Orders")

关于ios - 从 UserDefaults 中的列表中删除自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com