如何将一个数组保存到UserDefaults,然后检索该数组并打印

问题描述:

这是我的代码。这似乎是一个错误。任何人都可以请帮忙。如何将一个数组保存到UserDefaults,然后检索该数组并打印

class PopUpVC: UIViewController { 
    var myArray1 = ["1","2","3"] 
    var myArray2 = [String]() 
    UserDefaults.standard.set(myArray1, forKey: "array") 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    self.myArray2 = (UserDefaults.standard.string(forKey: "array") as? [String])! 
    print(self.myArray) 
    } 
+0

https://developer.apple.com/documentation/foundation/userdefaults/1416414-stringarray – Paulw11

class PopUpVC: UIViewController { 
    var myArray1 = ["1","2","3"] 
    var myArray2 = [String]() 

override func viewDidLoad() { 
     super.viewDidLoad() 
     UserDefaults.standard.set(myArray1, forKey: "array") 
     self.myArray2 = UserDefaults.standard.stringArray(forKey: "array")! 
     print(self.myArray2) 
} 
+0

这个答案是错误的。你不需要使用'Userdefaults.string(forKey:)'来检索一个字符串数组,你可以使用'array(forKey:)'或'object(forKey:)',然后将其转换为'[String]'。你甚至测试过这些代码吗?它甚至不会编译,因为你正试图给一个'String?'变量赋予一个'[String]'默认值。 –

+0

我用过的不是'String(forKey:)'我用的是'StringArray(forKey :)' –

+0

是的,这是正确的我接受了你的编辑。 –