Swift NSCoder не работает для двойной переменной - PullRequest
0 голосов
/ 02 ноября 2018

Я восстанавливаю состояние своего приложения и сохраняю несколько переменных, используя NSCoder в Xcode 10.1. NSCoder хорош для хранения строк и других типов переменных, но не позволяет мне хранить Doubles. Я перепробовал множество сценариев, но мне просто не нравятся двойники!

Если я конвертирую double в строку, это будет работать. Я пробовал как? Double ', и это все еще возвращает ноль. Есть идеи, почему я просто не могу использовать 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") 
}
...