做iOS开发已经快3年了,一直没有一个书写的习惯,那就从今天开始,一点点把所学过的知识记录下来吧.
归档可以对自定义对象进行存储操作
首先自定义一个person对象
@interface Person : NSObject<NSCoding>
@property (nonatomic)NSString *name;
@property (nonatomic)NSInteger age;
@property (nonatomic)NSString *sex;
@end
要遵守NSCoding协议
接下来是代码部分
//创建一个person对象
Person *person = [[Person alloc]init];
person.name = @"王韬";
person.sex = @"男";
person.age = 25;
NSLog( @"%@",person.name);
NSString *path = NSHomeDirectory();
path = [path stringByAppendingString:@"Singel.plist"];
//2:准备存储数据对象(用可变数组进行接收)
NSMutableData *data = [NSMutableData new];
//3:创建归档对象
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
//4:开始归档
[archiver encodeObject:person forKey:@"person"];
//5:完成归档
[archiver finishEncoding];
//6:写入文件
BOOL result = [data writeToFile:path atomically:YES];
if (result) {
NSLog(@"1111");
}
//反归档
//1:获取解档路径
NSData *MyData = [NSData dataWithContentsOfFile:path];
//2:创建反归档对象
NSKeyedUnarchiver *unarchiver= [[NSKeyedUnarchiver alloc]initForReadingWithData:MyData];
//3:反归档
Person *aper = [Person new];
aper = [unarchiver decodeObjectForKey:@"person"];
//4:结束归档
[unarchiver finishDecoding];
NSLog(@"%@",aper.name);