As the book requests I added this:
In Xcode 8.3.3
init() {
if let archivedItems = NSKeyedUnarchiver.unarchiveObject(withFile: itemArchiveURL.path) as? [Item] {
allItems = archivedItems
}
}
When I run it I get this:
omepwner[75541:7135722] *** Terminating app due to uncaught exception ‘NSInvalidUnarchiveOperationException’, reason: ‘*** -[NSKeyedUnarchiver decodeInt64ForKey:]: value for key (name) is not an integer number’
Here is my code that seemed to work for storing values into [Item]:
required init(coder aDecoder: NSCoder) {
name = aDecoder.decodeObject(forKey: “name”) as! String
dateCreated = aDecoder.decodeObject(forKey: “dateCreated”) as! Date
itemKey = aDecoder.decodeObject(forKey: “itemKey”) as! String
serialNumber = aDecoder.decodeObject(forKey: “serialNumber”) as! String
valueInDollars = aDecoder.decodeInteger(forKey: "name")
super.init()
}
Xcode 8.3.3 adds a caution note to:
serialNumber = aDecoder.decodeObject(forKey: “serialNumber”) as! String
it would prefer it to read:
serialNumber = (aDecoder.decodeObject(forKey: “serialNumber”) as! String)
but I didn’t do this.
Suggestions?