iOS - 归档的理解和摘记
来源:互联网 发布:linux 修改权限 chmod 编辑:程序博客网 时间:2024/05/17 00:07
使用归档的好处是能存储自定义对象,而不是只能像plist和偏好存储只能存储常见类型。而且plist文件保存数据打开直接显示,归档打开是乱码,安全一点。
以下是使用归档时几个注意点:
1.如果像将一个自定义对象保存到文件中,必须实现NSCoding协议
2.如果是继承,子类一定要重写coder两个方法
3.保存数据文件名后缀可以任意命名
首先是在自定义类中要实现两个方法,一个是-(void)encodeWithCoder:(NSCoder *)aCoder,这个方法在一个自定义对象保存到文件的时候就会调用,方法中说明如何存储自定义对象的属性,先看代码再解释
-(void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeInteger:self.age forKey:@"age"]; [aCoder encodeDouble:self.height forKey:@"height"]; }
打一个比方,你现在要把这个对象存储起来,其实就像是到银行存钱一样,self.name 就是你要存的钱,forKey的name 就是你的账户名,到时候取钱时候好用来找你的钱。二encoder后面跟的属性是你数据类型,也就是你的钱是人民币还是美元或者别的。
同理下一个方法
-(id)initWithCoder:(NSCoder *)aDecoder{ //注意:在构造方法中需要先初始化父类的方法 if (self=[super init]) { self.name=[aDecoder decodeObjectForKey:@"name"]; self.age=[aDecoder decodeIntegerForKey:@"age"]; self.height=[aDecoder decodeDoubleForKey:@"height"]; } return self;}
就是银行取钱,用你当初的账户取出对应类型的钱。
然后就是具体的Save和Read了。
Save和Read之前都需要先取得路径,
NSString *docPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]; NSString *path=[docPath stringByAppendingPathComponent:@"person.xiaoming"];
然后就是
Save:[NSKeyedArchiver archiveRootObject:p toFile:path];
Read:Person *xiaoming=[NSKeyedUnarchiver unarchiveObjectWithFile:path];
然后应该就完事了
0 0
- iOS - 归档的理解和摘记
- iOS 归档 和 自定义归档
- iOS中实现归档和反归档
- iOS 归档的使用
- IOS的归档
- IOS的归档
- iOS 归档的记录
- iOS 归档的记录
- 关于箭头函数的理解摘记
- iOS中的 沙盒文件夹 (数据的写入和读取,归档和反归档)
- IOS文件操作和自定义对象的归档(序列化)、反归档(反序列化)
- 随波逐流之IOS 复杂数据的归档和反归档 详解
- iOS 复杂对象持久化 归档和反归档的过程
- 自动归档的深入理解
- iOS study Day15-自定义文件的解档和归档
- iOS 系统对象和自定义对象的归档Archiver
- iOS 数据的存储和读取之归档
- iOS-归档模型创建和工具类的封装
- Unix时间戳,LST UTC GMT
- 基本套接字编程(4) -- poll篇
- vs2013+pcl1.7.2
- android 之 SurfaceView使用(桌面弹球)
- 133,集合中对象的内存管理
- iOS - 归档的理解和摘记
- Spring知识点
- 基本套接字编程(5) -- epoll篇
- Linux下 tar.xz格式文件的解压方法 tar xvzf
- HTML5-应用缓存技术.appcache配置
- 在angular2服务中注入服务
- Excel文件创建HIVE表
- javascript预加载图片方法汇总
- Linux 应用---make及makefile的编写