Swift之数据管理(二)-- 编码对象

1、定义一个student类

import UIKit

class Student: NSObject, NSCoding {
// MARK: - Properties
var sno: String!
var name: String!
var score: Int!

// MARK: - Init
init(sno: String, name: String, score: Int) {
    self.sno = sno
    self.name = name
    self.score = score
}

// MARK: - NSCoding

// 编码的时候调用这个方法
func encodeWithCoder(aCoder: NSCoder) {
    aCoder.encodeObject(sno, forKey: "sno")
    aCoder.encodeObject(name, forKey: "name")
    aCoder.encodeInteger(score, forKey: "score")
}

// 解码的时候调用这个方法
required init?(coder aDecoder: NSCoder) {
    sno = aDecoder.decodeObjectForKey("sno") as! String
    name = aDecoder.decodeObjectForKey("name") as! String
    score = aDecoder.decodeIntegerForKey("score")
}
}

2、主类调用

import UIKit

class ViewController: UIViewController {
// Documents目录
lazy var documentsPath: String = {
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    return paths.first!
}()

override func viewDidLoad() {
    super.viewDidLoad()
    
    
    // 归档操作
    
    // 创建对象
    let student = Student(sno: "1101", name: "maizixueyuan", score: 99)
    
    // 构造路径
    let path = "\(documentsPath)/student.archive"
    
    // 归档对象
    NSKeyedArchiver.archiveRootObject(student, toFile: path)
    
    
    // 解档操作
    let object = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as! Student
    print("\(object.sno), \(object.name), \(object.score)")
    
    
    // 检查文件
    print("\(NSHomeDirectory())")
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,092评论 6 13
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,261评论 0 2
  • 一. Java基础部分.................................................
    wy_sure阅读 3,832评论 0 11
  • 01 2011-8-13 14:09 今天是昨天的延续,昨天是今天的过去。我不沉迷于今天的延续,却流连于昨天的过去...
    邬小悲阅读 161评论 0 0