Swift NSCoder不适用于双变量

时间:2018-11-01 21:13:07

标签: ios swift xcode nscoder

我正在还原应用程序的状态,并使用Xcode 10.1中的NSCoder存储了一些变量。 NSCoder非常适合存储字符串和其他变量类型,但不允许我存储Doubles。我尝试了无数场景,但似乎不喜欢Doubles!

如果我将double转换为字符串,它将起作用。我尝试过Double”,这仍然返回nil。为什么我不能使用Double?

override func encodeRestorableState(with coder: NSCoder) {
    ...
    // Both don't work:
    coder.encode(myDoubleVariable, forKey: "Length")
    coder.encode(1.2345252, forKey: "Length")
}

override func decodeRestorableState(with coder: NSCoder) {
    ... 
    // Both don't work:
    myDoubleVariable = coder.decodeObject(forKey: "Length") 
    myDoubleVariable = coder.decodeDouble(forKey: "Length") 
}

0 个答案:

没有答案