归档和反归档
归档和反归档 都遵循 NSCoding协议
.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;
}`