归档和解档
2015-09-27 09:39
337 查看
归档--encoder 它是将自定义的对象写入磁盘前将对象转成二进制然后存入磁盘。
解档--decoder 它是将磁盘上保存的二进制数据转换成自定义对象。
eg:
自定义一个person对象
.h 文件中
@property (nonatomic,copy)NSString *name;
@property (nonatomic,assign)int age;
.m 文件中
// 归档
- (void)encodeWithCode:(NSCode *)encode
{
[encode encodeObject:_name forKey:@"userName"];
[encode encodeInt:_age forKey:@"userAge"];
}
// 解档
-(instancetype)initWithCoder:(NSCoder *)decoder
{
if(self = [super init])
{
_name = [decoder decodeObjectForKey:@"userName"];
_age = [decoder decodeIntForKey:@"userAge"];
}
return self;
}
在控制器中调用
实例化一个person对象
Person *p = [[Person alloc]init];
p.name = @"Jerry";
p.age = 20;
// 解档
[NSKeyedArchiver archiveRootObject:p toFile:@"/Users/apple/Desktop/123.plist"];
// 解档
Person *p1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/123.plist"];
NSLog(@"%@",p1.name);
解档--decoder 它是将磁盘上保存的二进制数据转换成自定义对象。
eg:
自定义一个person对象
.h 文件中
@property (nonatomic,copy)NSString *name;
@property (nonatomic,assign)int age;
.m 文件中
// 归档
- (void)encodeWithCode:(NSCode *)encode
{
[encode encodeObject:_name forKey:@"userName"];
[encode encodeInt:_age forKey:@"userAge"];
}
// 解档
-(instancetype)initWithCoder:(NSCoder *)decoder
{
if(self = [super init])
{
_name = [decoder decodeObjectForKey:@"userName"];
_age = [decoder decodeIntForKey:@"userAge"];
}
return self;
}
在控制器中调用
实例化一个person对象
Person *p = [[Person alloc]init];
p.name = @"Jerry";
p.age = 20;
// 解档
[NSKeyedArchiver archiveRootObject:p toFile:@"/Users/apple/Desktop/123.plist"];
// 解档
Person *p1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/123.plist"];
NSLog(@"%@",p1.name);
相关文章推荐
- Visual studio调试Web发生未能正常启动IIS express
- js定时器
- iOS开发:单例(Static)模式
- 最大连续递增子序列
- linux下 链接 sqlserver数据库 驱动的安装
- NodeJS
- Swift学习笔记基础语法-基本运算符
- 第 十 六 天 : 关 于 root 和 用 户 登 陆 的 问 题
- 字体加粗
- jQuery常用的元素查找方法总结
- 逻辑
- Conturbatio
- jQuery-强大的jQuery选择器 (详解)
- js动态生成树形结构
- 广搜——变换类
- 每天一个css css选择器
- hadoop2集群安装和测试之window开发环境
- Android.mk基础知识
- hdoj 1575 Tr A 【矩阵快速幂】
- jQuery的强大选择器详解