- (void)viewDidLoad {
[superviewDidLoad];
// mark - person 归档
Person * person = [[Personalloc]init];
person.name = @"张三";
person.age = 14;
[NSKeyedArchiverarchiveRootObject:person toFile:@"保存的路径.plist"];
// mark - 解档
Person * person1 = [NSKeyedUnarchiverunarchiveObjectWithFile:@"保存的路径.plist"];
NSLog(@"%@---%d",person1.name,person1.age);
}
#import <Foundation/Foundation.h>
@interface Person :NSObject<NSCoding>
@property (nonatomic ,copy)NSString * name;
@property (nonatomic ,assign)int age;
@end
#import "Person.h"
@implementation Person
/**
* 归档 -- encoder
*
* 将自定义的对象写入磁盘,并将对象转换成“二进制”
*/
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:_nameforKey:@"userName"];
[aCoder encodeInt:_ageforKey:@"userAge"];
}
/**
* 解档 --decoder
*
* 将磁盘上保存的二进制数据转成自定义的对象
*
* @return <#return value description#>
*/
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
if (self = [superinit]) {
_name = [aDecoder decodeObjectForKey:@"userName"];
_age = [aDecoder decodeIntForKey:@"userAge"];
}
return self;
}
@end