Swift:仅从NSUserDefaults中删除第一个对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift:仅从NSUserDefaults中删除第一个对象相关的知识,希望对你有一定的参考价值。
我创建了巴士票预订应用程序。所以我有Dictionary
和Array
。其中最近的路线搜索结果保存到NSUserDefaults
。现在我想将结果打印到一个TableView
。
现在在TableView
我只想展示last 10
这是我能完美做的所有但问题是每次结果都保存到UserDefaults
所以UserDefaults
的大小增加所以我只想删除Defaults
所以每次我的数组element remove
Repeat While
循环调用UserDefaults
中的元素的数量(如果我有30个元素,它运行20次就好了)。这就是我为Dictionary做的事情。
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
删除相同的可能吗?这是我的表视图图像。
答案
如果你在[[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中删除第一个对象的主要内容,如果未能解决你的问题,请参考以下文章
Swift:将 NSDictionary 保存到文件中,因为 NSUserDefaults 会变慢
如何在 swift 中保存和读取 NSUserdefaults 中的数组数组?
Swift NSUserDefaults TableView 多个单元格
Swift 将图像(截图)保存到 nsuserdefaults