存储路径为:
lazy var filePath:String = {
let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask
,true).first! as NSString
let filePath = path.appendingPathComponent("test.data")
return filePath
}()
使用解档用以下方式会报错[NSKeyedUnarchiver validateAllowedClass:forKey:]
do{
let data = try Data(contentsOf:URL(fileURLWithPath:filePath))
let account = try NSKeyedUnarchiver.unarchivedObject(ofClasses: [UserModel.classForKeyedUnarchiver()], from: data) as? UserModel
return account
}catch{
print(error)
}
解决方案: 使用unarchiveTopLevelObjectWithData
do{
let data = try Data.init(contentsOf:URL(fileURLWithPath:filePath))
let model = try?NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data)as?UserModel
return model
}catch{
print("获取失败: \(error)")
}
网友评论