我创建了公交车票预订应用程序。所以我有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
中删除它吗?这是我的表格视图图像。
答案 0 :(得分:0)
如果要将[[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")
}
}