Save dictionary to UserDefaults

后端 未结 2 1032
我寻月下人不归
我寻月下人不归 2021-01-05 05:23

I\'m trying to store a dictionary in UserDefaults and always get app crash when the code runs. Here is the sample code which crashes the app when it is executed. I tried to

2条回答
  •  星月不相逢
    2021-01-05 05:41

    To store a NSDictionary (with non-string key) in NSUserDefaults you need to convert them to NSData first. Try this

    let test = [1:"me"]
    override func viewDidLoad() {
        super.viewDidLoad()
        let data = NSKeyedArchiver.archivedData(withRootObject: test)
        let defaults = UserDefaults.standard
        defaults.set(data, forKey: "dict1")
        if let data2 = defaults.object(forKey: "dict1") as? NSData {
            let dict = NSKeyedUnarchiver.unarchiveObject(with: data2 as Data)
            print(dict)
        }
    }
    

提交回复
热议问题