#pragma mark 复杂对象--项目中很少用
Person *person = [[Person alloc]init];
person.name = @"一心";
person.gender = @"girl";
//创建路径
NSString *path = NSHomeDirectory();
path = [path stringByAppendingString:@"/person"];
//写入
//1.创建可变data,用来存放归档数据
NSMutableData *mutableData = [[NSMutableData alloc]initWithCapacity:10];
//2.创建一个归档对象
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:mutableData];
//3.归档--key值是随便给的,只是归档key和反归档key要一致。
[archiver encodeObject:person forKey:@"person"];
//4.完成归档
[archiver finishEncoding];
//5.写入文件
[mutableData writeToFile:path atomically:YES];
//读取
//1.使用data对象获取数据
NSData *data = [NSData dataWithContentsOfFile:path];
//2.创建反归档对象
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
//3.反归档
Person *resultPerson = [unarchiver decodeObjectForKey:@"person"];
//4.完成反归档
[unarchiver finishDecoding];
NSLog(@"路径:%@,编码前:%@,解码后:%@",path,person.name,resultPerson.name);