@interface Student : NSObject
@property (strong,nonatomic) NSString *name;
@property (assign,nonatomic) int age;
@property (assign,nonatomic) char sex;
-(Student *)initWithDictionary:(NSDictionary *)dic;
@end
@implementation Student
-(Student *)initWithDictionary:(NSDictionary *)dic
{
self = [super init];
if (self) {
self.name = dic[@"name"];
self.age = [dic[@"age"] intValue];
self.sex = [dic[@"sex"] charValue];
}
return self;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSDictionary *dic = @{@"name":@"lisi",@"age":@"30",@"sex":@'M'};
Student *stu = [[Student alloc] initWithDictionary:dic];
//归档
NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:@"student.tt"];
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *keyArcher = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[keyArcher encodeObject:stu.name forKey:@"name"];
[keyArcher encodeInt:stu.age forKey:@"age"];
[keyArcher encodeInt:stu.sex forKey:@"sex"];
[keyArcher finishEncoding];
BOOL bol = [data writeToFile:path atomically:YES];
NSLog(@"%d",bol);
NSLog(@"%@",path);
//解档
NSData *data1 = [NSData dataWithContentsOfFile:path];
NSKeyedUnarchiver *keyUn = [[NSKeyedUnarchiver alloc] initForReadingWithData:data1];
NSString *name = [keyUn decodeObjectForKey:@"name"];
int age = [keyUn decodeIntForKey:@"age"];
char sex = [keyUn decodeIntForKey:@"sex"];
NSLog(@"name = %@,age = %d,sex = '%c'",name,age,sex);
}