我想将String插入数组的第一位。当我尝试插入字符串时,一切正常,但是当我尝试插入另一个字符串时,似乎第一个字符串已从数组中删除。我不知道为什么要这么做。
var History: [String] = []
self.History.insert("\(Username_1)", at: self.History.startIndex)
let defaults = UserDefaults.standard
defaults.set(self.History, forKey: "SavedStringHistory")
在这里,我试图在数组的开头插入名为“ Username_1”的字符串,然后保存它。
let defaults = UserDefaults.standard
let myhistory = defaults.stringArray(forKey: "SavedStringHistory") ?? [String]()
let history = myhistory[indexPath.row]
这就是我检索数组中数据的方式。我认为这是将数组中存在的String替换为新的String。但是我不确定该如何解决。
答案 0 :(得分:0)
这两行声明的History
数组:
var History: [String] = []
...
self.History.insert("\(Username_1)", at: self.History.startIndex)
包含一个元素,即"\(Username_1)"
。
当您在具有"SavedStringHistory"
作为键的用户默认项中设置条目时,它将替换以前的内容。
defaults.set(self.History, forKey: "SavedStringHistory")
相反,您要做的是通过将History
的声明更改为与您给myhistory
相同的声明来保留以前存储的值(如果有):
var History: [String] = UserDefaults.standard.stringArray(forKey: "SavedStringHistory") ?? [String]()