使用NSKeyedArchiver归档和NSKeyedUnarchiver读档
2015-09-07 10:01
295 查看
1:在自定义的类里面要重写两个方法。
2:Person.m
-(void)encodeWithCoder:(NSCoder *)encoder; -(id)initWithCoder:(NSCoder *)aDecoder;
2:Person.m
#import "Person.h" @implementation Person -(void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:_name forKey:@"name"]; [encoder encodeObject:_title forKey:@"title"]; } -(id)initWithCoder:(NSCoder *)aDecoder { if (self = [super init]) { _name = [aDecoder decodeObjectForKey:@"name"]; _title = [aDecoder decodeObjectForKey:@"title"]; } return self; } @end3:ViewController.m
#define path @"/Users/juanjuan/Desktop/Person.txt" @interface ViewController () - (IBAction)writeClicked:(id)sender; - (IBAction)readClicked:(id)sender; @property(nonatomic,strong) NSArray *array; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)writeClicked:(id)sender { Person *p = [[Person alloc]init]; p.name = @"juanjuan"; p.title = @"1111"; Person *p1 = [[Person alloc]init]; p1.name = @"zhangsan"; p1.title = @"lisi"; _array = @[p,p1 ]; [NSKeyedArchiver archiveRootObject:_array toFile:path]; } - (IBAction)readClicked:(id)sender { NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; Person *pp = arr[0]; NSLog(@"%@---name %@",arr,pp.name); } @end
相关文章推荐
- 北京第九次Spark meetup会议资料分享
- 《C++primer(第五版)》学习之路-第四章:表达式
- 北京第九次Spark meetup会议资料分享
- 转一个网址,canvas用法
- 修改类不用重启Tomcat加载整个项目
- MySQL数据库迁移
- mysql数据库修改编码
- Trie 前缀树的c 实现
- unity 常用网站、插件、技术记录
- Ember.js 入门指南——类的定义、初始化、继承
- Debian 5.0升级GRUB为GRUB2
- Ecshop开发
- Ember.js 入门指南——类的定义、初始化、继承
- js调用百度地图及调用百度地图的搜索功能
- 工作技能不等于工作能力——工作能力的5个维度
- soapui中文操作手册(二)----通过您的WSDL请求创建一个测试
- CSS布局(一):display、position、flot
- android studio mark
- MyBatis学习笔记(十二)spring与Mybatis整合事务
- js实现可折叠展开的手风琴菜单效果