Swift之?dāng)?shù)據(jù)管理(二)-- 編碼對象

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

// 編碼的時候調(diào)用這個方法
func encodeWithCoder(aCoder: NSCoder) {
    aCoder.encodeObject(sno, forKey: "sno")
    aCoder.encodeObject(name, forKey: "name")
    aCoder.encodeInteger(score, forKey: "score")
}

// 解碼的時候調(diào)用這個方法
required init?(coder aDecoder: NSCoder) {
    sno = aDecoder.decodeObjectForKey("sno") as! String
    name = aDecoder.decodeObjectForKey("name") as! String
    score = aDecoder.decodeIntegerForKey("score")
}
}

2、主類調(diào)用

import UIKit

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

override func viewDidLoad() {
    super.viewDidLoad()
    
    
    // 歸檔操作
    
    // 創(chuàng)建對象
    let student = Student(sno: "1101", name: "maizixueyuan", score: 99)
    
    // 構(gòu)造路徑
    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())")
}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,637評論 18 399
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,332評論 6 13
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,423評論 0 2
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,010評論 0 11
  • 01 2011-8-13 14:09 今天是昨天的延續(xù),昨天是今天的過去。我不沉迷于今天的延續(xù),卻流連于昨天的過去...
    鄔小悲閱讀 223評論 0 0

友情鏈接更多精彩內(nèi)容