使用swift 3.0,我正在尝试将一组对象添加到用户默认值中。由于这不是常规UserDefault类型之一,我已经意识到对象或对象数组(无法解决哪一个)需要解析为NSData类型,然后再添加到UserDefaults。
到目前为止,我的尝试如下:
在对象
中func updateDefaults()
{
let data = NSData(data: MyVariables.arrayList)
UserDefaults.standard.set(data, forKey: "ArrayList")
}
其中MyVariables.arrayList是对象数组。
最后,如果可能的话,知道如何从UserDefaults中检索它并将其转换为原始的一维对象数组会很高兴。
由于
REPOSITORY:https://github.com/Clisbo/ModularProject
答案 0 :(得分:0)
您无法在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()
}
}