美文网首页iOS开发问题解决
报错[NSKeyedUnarchiver validateAll

报错[NSKeyedUnarchiver validateAll

作者: 萤火驻守心间 | 来源:发表于2022-01-01 22:22 被阅读0次

存储路径为:

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)")

        }

相关文章

网友评论

    本文标题:报错[NSKeyedUnarchiver validateAll

    本文链接:https://www.haomeiwen.com/subject/zzqnqrtx.html