swift - Swift:仅从 NSUserDefaults 中删除第一个对象
问题描述
我创建了巴士票预订应用程序。所以我有Dictionary
它Array
。其中最近的 Route 搜索结果保存到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
Is it possible? 中删除相同的内容?这是我的表视图图像。
解决方案
如果您正在保存[[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")
}
}
推荐阅读
- python - 使用客户端集成进行付款时如何运行 django 功能
- quantum-computing - 从当前状态到目标状态(App QLogic)
- google-signin - Google One Tap 提示显示域名而不是应用程序名称
- css - CSS?选择器不适用于 SCSS 选择器
- react-native - 点击 FlatList 底部的 TextInput,键盘会立即关闭,
- sql - PL/SQL 检查一个数是否为素数的函数
- python - 如何在 MaixPy 中为我的 draw_string 添加颜色?
- sql - 存储过程故障排除执行时间
- swift - 如何在 Swift 中创建具有特定颜色的自定义 UILabel
- deep-learning - FastAI fastbook - 它有什么作用,为什么我需要设置一本书?