我有2个类(Client,Admin)继承自同一个父类(User)。
这3个类实现了NSCoding协议,因此我可以将它们作为数据存储在userdefaults中。
当我的应用程序启动时,我想将存储的数据反序列化为Swift 对象。
有没有办法知道存储数据属于哪种类型?
类似的东西:
let data = defaults.object(forKey: "loggedInUser") as? Data
if data is Client
let client = NSKeyedUnarchiver.unarchiveObject(with: data) as? Client
if data is Admin
let admin = NSKeyedUnarchiver.unarchiveObject(with: data) as? Admin
答案 0 :(得分:1)
您可以查看
if let data = defaults.object(forKey: "loggedInUser") as? Data {
let obj = NSKeyedUnarchiver.unarchiveObject(with: data)
if obj is Client {
let client = obj as! Client
}
if obj is Admin {
let admin = obj as! Admin
}
}