gpt4 book ai didi

arrays - UserDefaults 无法正确检索我的字符串数组

转载 作者:搜寻专家 更新时间:2023-10-31 22:25:00 25 4
gpt4 key购买 nike

我正在尝试建立一种机制,让用户将项目保存到收藏夹(这是一个数组),然后将其保存到 UserDefaults,但我似乎无法让它正确地写入 UD。在下面的示例中打印 UDSaved 会返回 [],即使我只是将一个元素附加到数组。

有人知道我做错了什么吗?

是语法错误,我没有正确检索还是我的逻辑有问题?

var favouritesArray: [String] = []

func UDWrite() {UserDefaults.standard.set(favouritesArray, forKey: "UDfavouritesArray")}
let UDSaved = UserDefaults.standard.stringArray(forKey: "UDfavouritesArray") ?? [String]()


favouritesArray.append("element")
UDWrite()

print(UDSaved)

最佳答案

正如一些评论中所述:UDSaved 永远不会更新。我的解决方案是使 UDSaved 成为如下函数:

var favouritesArray: [String] = []

func UDWrite() {UserDefaults.standard.set(favouritesArray, forKey: "UDfavouritesArray")}
func UDSaved() -> [String] {return UserDefaults.standard.stringArray(forKey: "UDfavouritesArray") ?? [String]}()

favouritesArray.append("element")
UDWrite()

print(UDSaved())

或者你可以让它成为一个计算属性

var UDSaved: [String] {
return UserDefaults.standard.stringArray(forKey: "UDfavouritesArray") ?? [String]
}

关于arrays - UserDefaults 无法正确检索我的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010050/

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