将字符串附加到UserDefault数组

时间:2018-02-19 13:48:09

标签: swift userdefaults

嘿伙计们,所以我知道我们可以将单个字符串附加到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中添加值。

2 个答案:

答案 0 :(得分:1)

只需追加两次:

savedArray?.append(name!)
savedArray?.append(lastname!)

或者您可以将append(contentsOf:)与数组一起使用,但此处似乎没有必要。

答案 1 :(得分:1)

您使用的问题和惊叹号太多了。由于savedArraynamelastName是非可选的,因此无论如何都会使用可选语法获得一些编译器错误。

不是搜索我建议阅读documentation的内容,而是有一些示例如何附加多个元素。在这种情况下,contains优于index

if !savedArray.contains(name) {
    savedArray.append(contentsOf: [name, lastname])
}