自定义对象的归档 //类只有实现 NSCoding 协议才具备归档功能 归档最好定义成宏,笔误好发现.
2014-07-10 00:35
711 查看
对象要支持归档,需要实现 NSCoding 协议.
NSCoding 协议有两个方法, encodeWithCoder 方法对对象的属性数据做编码处理. initWithCoder 解码归档数据来初始化.
实现 NScoding 协议后,就能通过 NSKeydeArchiver 归档
例:
//解码方法
- (id)initWithCoder: (NScoder *) aDecoder{
self = [super init];
if (self != nil) {
_name = [[aDecoder decodeObjectForKey@"name"] copy];
_age = [aDecoder decodeIntForKey@"age"];
_applse = [[aDecoder decodeObjectForKey@"apples"] retain];
}
return self;
}
最好这样写成宏
#defin NAME @"name"
[aCoder encodObject: _name forKey:NAME];
NSCoding 协议有两个方法, encodeWithCoder 方法对对象的属性数据做编码处理. initWithCoder 解码归档数据来初始化.
实现 NScoding 协议后,就能通过 NSKeydeArchiver 归档
例:
//解码方法
- (id)initWithCoder: (NScoder *) aDecoder{
self = [super init];
if (self != nil) {
_name = [[aDecoder decodeObjectForKey@"name"] copy];
_age = [aDecoder decodeIntForKey@"age"];
_applse = [[aDecoder decodeObjectForKey@"apples"] retain];
}
return self;
}
最好这样写成宏
#defin NAME @"name"
[aCoder encodObject: _name forKey:NAME];
相关文章推荐
- 对象归档 归档最好定义成宏,这样笔误很好发现.
- 【Objective-C】OC中自定义对象的归档基本概念和使用方法(实现NSCoding协议)
- 【Objective-C】OC中自定义对象的归档基本概念和使用方法(实现NSCoding协议)
- 归档/解归档已经实现NSCoding协议以使自定义类具有归档功能
- 实现数据模型缓存 可以用NSKeyedArchiver类来实现数据模型缓存。为了把模型对象用NSKeyedArchiver归档,模型类需要遵循NSCoding协议。
- JS 自定义对象实现Java中的Map对象功能
- JS 自定义对象实现Java中的Map对象功能
- Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator
- Comparable接口实现自定义对象的排序功能
- 利用runtime实现自定义对象归档总结
- mina仿qq聊天功能,自定义协议,协议的编码和解码详解,发送xml对象json,mina开发大全,详细api,mina心跳
- ios-day13-01(私人通讯录。控制器之间的数据传递、保存密码和自动登录的实现、普通对象的归档、UITableView的局部刷新和向左滑动删除功能等等)
- 用归档保存的对象,其子对象必须也支持归档包括自定义的对象。及实现initWithCoder和encodeWithCoder方法
- JS自定义对象实现Java中Map对象功能的方法
- 利用修改div的位置+js对象存储div信息 实现简单的div自定义布局功能
- 一起写框架-Ioc内核容器的实现-基础功能-组件注解支持自定义的对象名(九)
- objective-C 自定义对象归档的实现
- JS自定义对象实现Java中Map对象功能的方法
- c++如何自定义ostream对象,使其实现cout的功能
- js对象如何实现数组索引功能并且自定义自己的方法 (4种方法)