いままではこんなふう required init?(coder aDecoder: NSCoder)
に書いていた。
guard let id = aDecoder.decodeObject(forKey: "id") as? Int else { // なんかする return }
Swift3 & Xcode8環境下では、id
にずっとnil
が返ってきて、デシリアライズができなくて困っていたらこうすればよかった。
let id = aDecoder.decodeInteger(forKey: "id")
ただこの方法だとdecodeに失敗した際に常に0
が返ってくる。違う書き方があるのだろうか……。