归档和反归档

归档和反归档

归档和反归档 都遵循 NSCoding协议

归档和反归档_第1张图片
屏幕快照 2016-04-13 下午9.47.49.png

.h中 学要实现归档和反归档的属性

.m中 是实现归档和反归档的方法

当类遵循NSCoding协议后 就会有 归档 和 反归档的两个方法

1.归档 实际上就是将当前类的属性编码转化为NSData类型

- (void)encodeWithCoder:(NSCoder *)aCoder{ 实际的编码过程,原理就是将name这个属性的值编码为NSData类型,因为我们解码的时候,需要重新为该类属性赋值,所以需要加标记,也就是key。 [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeObject:self.gender forKey:@"gender"]; [aCoder encodeInt:self.age forKey:@"age"]; }

2.反归档 因为归档过程中,我们是将当前类转换为NSData类型,并储存到某个文件中当我们取出来的时候

`-(instancetype)initWithCoder:(NSCoder *)aDecoder{

self = [super init];
if (self) {
    //将刚才编码为NSData类型的属性,又通过解码方式变回原来的类型,上面编码过程中,所赋给的key值为何种名称,底下解码得对应上。
    self.name = [aDecoder decodeObjectForKey:@"name"];
    self.age = [aDecoder decodeIntForKey:@"age"];
}
NSLog(@"执行了反归档的方法");
return self;

}`

归档和反归档_第2张图片
屏幕快照 2016-04-13 下午10.06.22.png

你可能感兴趣的:(归档和反归档)