gpt4 book ai didi

Swift:仅从 NSUserDefaults 中删除第一个对象

转载 作者:行者123 更新时间:2023-11-30 10:57:12 25 4
gpt4 key购买 nike

我创建了巴士票预订应用程序。所以我有 Dictionary ,其中包含 Array 。其中最近的Route搜索结果被保存到NSUserDefaults中。现在我想将该结果打印到一个 TableView 中。

现在在 TableView 中,我只想显示 最后 10 个 这就是我能完美做到的,但问题是每次将结果保存到 >UserDefaults,因此 UserDefaults 的大小增加,所以我只想删除 Defaults 所以每次我的数组元素删除 Repeat While循环调用UserDefaults中元素的数量(如果我有30个元素,它会运行20次)。这就是我为字典所做的事情。

    var arrSearch = [[String:Any]]()
var searchBusVC:SearchBusViewController?

override func viewDidLoad() {
super.viewDidLoad()

if let arr = UserDefault["Search"] {
arrSearch.append(contentsOf: (arr as! [[String:Any]]))
repeat{
arrSearch.removeFirst()

}while (arrSearch.count > 10)

arrSearch.reverse()
}
self.tblSearch.reloadData()
}

所以我想从 UserDefaults 中删除相同的内容,这可能吗?这是我的表格 View 图像。

enter image description here

最佳答案

如果您将[[String: Any]]保存在UserDefaults中,则意味着它就像从数组中删除对象的正常方法一样。从数组中删除对象后,将其保存到 UserDefaults

 var recentRecords:[[String: Any]]? {
get {
return UserDefaults.standard.array(forKey:"recentRecord")
}
set {
var trimmed: [[String: Any]] = newValue
// Trim last 10 objects from array
if newValue.count >= 10 {
trimmed = newValue.suffix(10)
}

UserDefaults.standard.set(trimmed, forKey: "recentRecord")
}
}

关于Swift:仅从 NSUserDefaults 中删除第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53826384/

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