可以把自定义对象的数据保存起来
1、在对象中写好归档解档方法
//归档会将自定义对象写入磁盘前将对象转成二进制
-(void)encodeWithCoder:(NSCoder *)encoder{
[encoder encodeObject:_name forKey:@"userName"];
[encoder encodeInt:_age forKey:@"userAge"];
}
//解档会把磁盘上保存的二进制数据转换成自定义对象所需要的
-(instancetype)initWithCoder:(NSCoder *)decoder{
if(self = [super init]){
_name = [decoder decodeObjectForKey:@"userName"];
_age = [decoder decodeIntForKey:@"userAge"];
}
return self;
}
2、归档解档的使用范例
//归档
Person *p = [[Person alloc] init];
p.name = @"zhangsan";
p.age = 18;
[NSKeyedArchiver archiveRootObject:p toFile:@"/Users/apple/Desktop/321.plist"];
//解档
Person *p2 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/321.plist"];
NSLog(@"%@", p1.name);
NSLog(@"%d", p1.age);