Ho migrato il mio progetto a Swift 3 e NSKeyedArchiver
non funziona. Mi hanno fatto un errore di runtime quando si cerca di decodificare oggetto come questo:NSKeyedArchiver non funziona in Swift 3 (XCode 8)
let startDayTime = aDecoder.decodeObject(forKey: Key.startDayTime) as! Int
ha funzionato perfettamente a Swift 2.2 in Xcode 7.3. Qualcun altro ha affrontato tali problemi?
P.S. Ho questo errore su entrambi Simulator e Device.
AGGIORNAMENTO: Ho risolto questo problema utilizzando decodeInteger(forKey key: String)
anziché decodeObject(forKey key: String)
. Per qualche motivo AnyObject non esegue il cast di Integer in Swift 3 anche se lo ha fatto in Swift 2.2
invitiamo ad aggiungere output degli errori. – yennsarah
Potrebbe essere che l'oggetto era 'nil' o che il cast su' Int' non è riuscito. Dovresti guardare il risultato di 'decodeObject' prima del casting forzato e vedere quale è il problema. Inoltre, per quanto riguarda i numeri interi, puoi usare 'decodeInteger (forKey:)'. – Rob
È necessario aggiungere una soluzione come risposta –