Я перенес свой проект на Swift 3, и NSKeyedArchiver
не работает. У меня действительно есть ошибка времени выполнения при попытке декодировать объект следующим образом:
let startDayTime = aDecoder.decodeObject(forKey: Key.startDayTime) as! Int
Он отлично работал в Swift 2.2 в Xcode 7.3. Кто-нибудь еще сталкивался с такими неприятностями?
P.S. У меня есть эта ошибка как на симуляторе, так и на устройстве.
ОБНОВЛЕНИЕ: я решил эту проблему, используя decodeInteger(forKey key: String)
вместо decodeObject(forKey key: String)
. По какой-то причине AnyObject не приводит к Integer в Swift 3, хотя это было в Swift 2.2.
nil
, либо приведение кInt
не удалось. Вы должны посмотреть на результатdecodeObject
до принудительного приведения и посмотреть, в чем проблема. Кроме того, к вашему сведению, при работе с целыми числами вы можете использоватьdecodeInteger(forKey: )
. - person Rob   schedule 30.06.2016