简体   繁体   English

如何在 UserDefaults 中保存一个 Double 数组?

[英]How can I save an array of Double in UserDefaults?

How can I save an array of Double in UserDefaults ?如何在UserDefaults中保存一个 Double 数组?

How come my UserDefaults evaluate to nil?为什么我的UserDefaults评估为零?

print(UserDefaults.standard.object(forKey: "num")!)
if var o = UserDefaults.standard.object(forKey: "num") as? [Double] {
    o.insert(Double(self.slid), at: 0)
    print("opa \(o)")
    UserDefaults.standard.removeObject(forKey: "num")
    UserDefaults.standard.set(o, forKey: "num")
    if let z = UserDefaults.standard.object(forKey: "num") {
        print(z)
    }
} else {
    UserDefaults.standard.set(Double(self.slid), forKey: "num")
    if let z = UserDefaults.standard.object(forKey: "num") {
        print("kl \(z)")
    } else {
        print("nilo")
    }
}

You should be setting the value initially as an array of double [Double] instead of just a single Double .您最初应该将值设置为 double [Double]的数组,而不仅仅是单个Double Modify to the below line:修改为以下行:

UserDefaults.standard.set(Double(self.slid), forKey: "num")

To:至:

UserDefaults.standard.set([Double(self.slid)], forKey: "num")

Here is the complete code you'll need:这是您需要的完整代码:

if var array = UserDefaults.standard.object(forKey: "num") as? [Double] {
    array.insert(Double(self.slid), at: 0)
    UserDefaults.standard.set(array, forKey: "num")
} else {
    UserDefaults.standard.set([Double(self.slid)], forKey: "num")
}
print(UserDefaults.standard.object(forKey: "num"))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM