使用 swift 3.0,我尝试将对象数组添加到用户默认值中。由于这不是常规的 UserDefault 类型之一,我意识到对象或对象数组(无法确定是哪一个)需要解析为 NSData 类型,然后添加到 UserDefaults 中。
到目前为止我的尝试如下:
在对象内
func updateDefaults()
{
let data = NSData(data: MyVariables.arrayList)
UserDefaults.standard.set(data, forKey: "ArrayList")
}
其中 MyVariables.arrayList 是对象数组。
最后,如果可能的话,最好知道如何从 UserDefaults 中检索它并将其转换为原始的一维对象数组。
谢谢
最佳答案
您无法将自定义数组保存在 NSUserDefaults 中。为此,您应该将它们更改为 NSData,然后将其保存在 NSUserDefaults 中,这是代码。
var custemArray: [yourArrayType] {
get {
if let data = NSUserDefaults.standardUserDefaults().objectForKey("yourKey") as? NSData {
let myItem = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? yourType
}
}
set {
let data =NSKeyedArchiver.archivedDataWithRootObject(yourObject);
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "yourKey")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
关于swift - 在 UserDefaults 中保存对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41395318/