必须实现NSCoding协议
.h文件里面需要实现
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic,copy)NSString *personMessage;
@end
.m文件里面需要实现
#import "Person.h"
@implementation Person
- (void)encodeWithCoder:(NSCoder *)encoder
{
//将_name属性进行编码
[encoder encodeObject:_personMessage forKey:@"message"];
}
-(id)initWithCoder:(NSCoder *)decode
{
if (self = [super init]) {
_personMessage = [decode decodeObjectForKey:@"message"];
}
return self;
}
@end
#import "ViewController.h"
#import "Person.h"
@interface ViewController ()
{
NSString *_path;
Person *psen;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//存数据
_path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/info.plist"];
NSLog(@"_path:%@",_path);
NSString *saveString = @"数据保存.读取成功";
psen = [[Person alloc]init];
psen.personMessage = saveString;
[NSKeyedArchiver archiveRootObject:psen toFile:_path];
}
- (void)viewDidAppear:(BOOL)animated{
//取数据
NSString *lPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/info.plist"];
Person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:lPath];
NSLog(@"=====>%@",p.personMessage);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end