编码对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码对象相关的知识,希望对你有一定的参考价值。

要被写入和读取的对象必须继承NSObject,,并且实现NSCoding
关键还要实现NSCoding 的两个必要的方法
public func encode(with aCoder: NSCoder)
public init?(coder aDecoder: NSCoder)
格式如下:
// 编码的时候调用这个方法
    func encode(with aCoder: NSCoder) {
        aCoder.encode(sno, forKey: "sno")
        aCoder.encode(name, forKey: "name")
        aCoder.encode(score, forKey: "score")
    }
    
    // 解码的时候调用这个方法
    required init?(coder aDecoder: NSCoder) {
        sno = aDecoder.decodeObject(forKey: "sno") as! String
        name = aDecoder.decodeObject(forKey: "name") as! String
        score = aDecoder.decodeInteger(forKey: "score")
    }

//新创一个demo类来测试这个归档操作
// 创建对象
        let student = Student(sno: "1101", name: "maizixueyuan", score: 99)
        
 // 构造路径
        let path = "\(documentsPath)/student.archive"
        
 // 归档对象
        NSKeyedArchiver.archiveRootObject(student, toFile: path)
     
// 解档操作
        let object = NSKeyedUnarchiver.unarchiveObject(withFile: path) as! Student
        print("\(object.sno), \(object.name), \(object.score)")
        
// 检查文件
        print("\(NSHomeDirectory())")

 

以上是关于编码对象的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

以下代码片段 C++ 的说明