【发布时间】:2016-07-15 13:46:12
【问题描述】:
当我尝试取消归档自定义对象时出现以下错误
'无法为键(根)解码类(PhotoList)的对象;该类可以在源代码或未链接的库中定义'
我目前在应用商店有一个版本(v1.0,已通过版本 TestFlight (v2.0) 发布了更新,这就是发生错误的地方。通过 Xcode 构建的相同版本不会发生该错误. 没有任何改变(我可以看到!)会导致这种情况。
这是我用于归档对象的代码
let data = NSKeyedArchiver.archivedDataWithRootObject(VehicleList.instance)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "archiveName")
这是我用于取消归档对象的代码
if let data = NSUserDefaults.standardUserDefaults().objectForKey("archiveName") as? NSData {
let photoList : PhotoList = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! PhotoList
}
【问题讨论】:
-
在哪一行崩溃?此外,您正在转换为错误的类型。你应该用
VehicleList替换PhotoList -
VehicleList/PhotoList 是源代码中的一个类型——我的错!它在下面一行崩溃:让 photoList : PhotoList = NSKeyedUnarchiver.unarchiveObjectWithData(data) as!照片列表
标签: swift nskeyedarchiver