编码对象

news/2024/7/8 6:23:26
要被写入和读取的对象必须继承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())")

 

转载于:https://www.cnblogs.com/LarryBlogger/p/6186546.html


http://www.niftyadmin.cn/n/842057.html

相关文章

物联网如何跳出“看起来很美”?

摘要: 物联网市场正处在大爆发的前夜。今年2月,思科宣布14亿美元收购物联网公司Jasper,4月底Cypress宣布以5.5亿美元收购博通的无线物联网业务,其后不到一周时间,微软宣布收购意大利物联网平台Solair。 物联网市场正处…

Eclipse Maven创建项目失败的解决办法

eclipse重新配置maven环境后,无法创建项目,错误如下: 网上的解决办法一般有以下几种: 1.修改maven的配置文件,将settings文件中的默认镜像修改为国内的镜像仓库,比如阿里的镜像仓库 在mirror节点下添加 …

Eclipse Maven项目jar包Missing问题解决方法

在pom.xml文件中引入依赖后,jar包Missing,原因可能是网络太慢,jar包没下载完也可能是本地仓库位置没有配对 解决方法两种: 1.修改maven中settings配置文件中的镜像仓库 2.在项目上右键,选择maven,点Upda…

Vue使用jQuery

main.js import jquery from jquerywindow.$ window.jQuery jquery在要使用的地方直接 $即可 例如 $.ajax({type: POST,url: http://localhost:8082/User/Login,dataType: json,data: {usercode: "111",password: "222"},success: function (data) {}}…

eclipse中普通的代码自动补全和xml文件代码补全

普通补全: 打开eclipse,window->preferences->java->edtior->content assist Auto Activation下Auto activation triggers for Java中填写.abcd就Ok了 XML文件的自动补全: 在preferences中选中XML,其余操作与上面的…

JAVA面试题小总结

Volatile :Java虚拟机提供的轻量级的同步机制,基本遵守JMM规范 保证可见性: volatile int number0;此时的number的值被一个线程修改后,其他线程也可以知道修改后的值不保证原子性:线程太快会出现写覆盖,造…

opencv学习02-播放视频,注意没有声音

2019独角兽企业重金招聘Python工程师标准>>> 编译命令: g video.cpp -I /opt/bin/include/opencv -o hello pkg-config --libs opencv#include "stdio.h" #include <iostream> #include <cv.h> //#include <cvaux.h> #include <cxco…

Android活动,控件,碎片,广播,数据库小总结

系统架构与开发环境搭建 3月2日Android Activities代码练习 3月5日Intent的应用与传值 3月9日 1&#xff1a;显式Intent与隐式Intent的区别 显式Intent直接用组件的名称定义目标组件&#xff0c;这种方式很直接。但是由于开发人员往往并不清楚别的应用程序…