iOS归档与反归档

2017-07-26  本文已影响0人  就叫醍醐灌顶吧

做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);

上一篇下一篇

猜你喜欢

热点阅读