码迷,mamicode.com
首页 > 其他好文 > 详细

编码对象

时间:2016-12-16 14:56:36      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:调用   require   for   rect   class   创建   ring   并且   root   

要被写入和读取的对象必须继承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())")

 

编码对象

标签:调用   require   for   rect   class   创建   ring   并且   root   

原文地址:http://www.cnblogs.com/LarryBlogger/p/6186546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!