【发布时间】:2018-12-03 05:41:03
【问题描述】:
我正在尝试创建一种机制,让用户将项目保存到收藏夹(这是一个数组),然后将其保存到 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。
-
你正在保存空数组然后获取它,然后添加字符串,尝试添加 favouritesArray.append("element"),在 var favouritesArray: [String] = []
-
您执行以下操作:创建一个空数组
a。将a写入字典。通过从字典中读取a创建一个数组b。在a上附加一些内容。打印b。 -
@DavidStockinger 创建 a 后不会调用将 a 写入字典的函数,而是在我将某些内容附加到 a 后调用它。所以顺序是: - 创建一个空数组 A - 通过从字典中读取 A 创建一个数组 B - 将一些内容附加到 A - 将 A 写入字典 BI 意识到虽然我需要将 A 的值分配给 B 作为我的一部分功能,这似乎有效。
标签: arrays swift nsuserdefaults