嘿伙计们,所以我知道我们可以将单个字符串附加到userdefault,但我想知道我们如何追加[String:String]
所以这是我的代码
var savedArray = UserDefaults.standard.array(forKey: "array1") as! [String]
let name = John
let lastname = Smith
if let index = savedArray?.index(where: {$0 != name!}) {
savedArray?.append(name!)
}
//this code works fine but now I want to add more than just name. So I tried this code below
if let index = savedArray?.index(where: {$0 != name!}) {
savedArray?.append(name!, lastname!)
}
然后我得到一个错误,在调用中说出额外的参数。所以我假设因为最重要的是我把它作为! [串]。但是,如果我把
var savedArray = UserDefaults.standard.array(forKey: "array1") as! [String: String]
我无法附加此变量,因为错误消息表明append不适用于String:String。无论如何要将多个字符串附加到Userdefault中吗?当我尝试google时,它只显示如何将用户默认设置为字符串,但我想继续在userdefaults中添加值。
答案 0 :(得分:1)
只需追加两次:
savedArray?.append(name!)
savedArray?.append(lastname!)
或者您可以将append(contentsOf:)
与数组一起使用,但此处似乎没有必要。
答案 1 :(得分:1)
您使用的问题和惊叹号太多了。由于savedArray
,name
和lastName
是非可选的,因此无论如何都会使用可选语法获得一些编译器错误。
不是搜索我建议阅读documentation的内容,而是有一些示例如何附加多个元素。在这种情况下,contains
优于index
:
if !savedArray.contains(name) {
savedArray.append(contentsOf: [name, lastname])
}