NSCoding: найдено ноль при развертывании необязательного значения

после обновления до Swift 3 я получаю этот очень известный сбой, который я не могу решить самостоятельно...:

фатальная ошибка: неожиданно найдено nil при распаковке необязательного значения*:

онлайн

self.isDefault = aDecoder.decodeObject(forKey: "BoxUserDefault_isDefault") as! Bool

Почему он сейчас рухнет?

вот мой класс

class BoxUserDefault: NSObject, NSCoding {

    var frendlyName: String
    var hostname: String
    var isDefault: Bool

    init(frendlyName: String, hostname: String, isDefault: Bool) {
        self.frendlyName = frendlyName
        self.hostname = hostname
        self.isDefault = isDefault
        super.init()
    }

    func encode(with aCoder: NSCoder) {
        aCoder.encode(self.frendlyName, forKey: "BoxUserDefault_frendlyName")
        aCoder.encode(self.hostname, forKey: "BoxUserDefault_hostname")
        aCoder.encode(self.isDefault, forKey: "BoxUserDefault_isDefault")
    }

    required init?(coder aDecoder: NSCoder) {
        self.frendlyName = aDecoder.decodeObject(forKey: "BoxUserDefault_frendlyName") as! String
        self.hostname = aDecoder.decodeObject(forKey: "BoxUserDefault_hostname") as! String
        self.isDefault = aDecoder.decodeObject(forKey: "BoxUserDefault_isDefault") as! Bool

        super.init()
    }
}

Есть идеи ? Спасибо ребята


person Lucas Adam    schedule 13.10.2016    source источник


Ответы (1)


Используйте соответствующий метод decodeBool(forKey:

self.isDefault = aDecoder.decodeBool(forKey: "BoxUserDefault_isDefault")!
person vadian    schedule 13.10.2016
comment
Вроде нормально работает! Чувствую себя глупо ^^ Спасибо, приятель - person Lucas Adam; 13.10.2016