gpt4 book ai didi

ios - 在Swift 3中删除UserDefaults的单个键值

转载 作者:行者123 更新时间:2023-11-28 09:50:28 27 4
gpt4 key购买 nike

我正在iOS应用程序中使用UserDefaults跟踪用户的首选项--当用户选择表格单元格时,它会将单元格的文本添加到我的键中。那部分有用。
现在,我想允许用户在选择行时从键中删除匹配的键值。如果一个单元格显示“第1集”,它应该从UserDefaults中删除该值。
the documentation中,有一个removeObject的实例方法。以下是我写的:

    let defaults = UserDefaults.standard
var myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
if let datastring = TableData[indexPath.row] as? String {
if !myarray.contains(datastring) {
myarray.append(datastring)
defaults.removeObject(myarray, forKey: "SavedStringArray")
defaults.synchronize()
}

这会为 Extra argument in call返回一个错误——我假设它的意思是 myarray,但是如果我不能添加该参数,我如何告诉它只删除一个值(存储在 myarray中)?
如果我打印 UserDefaults.standard,它将返回存储的集值列表,如`[“第一集”,“第二集”,“第三集”]
你知道当点击这里的单元格时如何删除 Third Episode吗?

最佳答案

我有以下代码可以为你工作。

if myarray.contains(datastring) {
myarray.remove(at: myarray.index(of: datastring)!)
} else {
myarray.append(datastring)
}
defaults.set(myarray, forKey: "SavedStringArray")

此代码将从数组中移除元素,并在相同键的用户默认值中再次设置数组,因此它将用新数组替换您的数组。

关于ios - 在Swift 3中删除UserDefaults的单个键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49548577/

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